UVa-839 - Not so Mobile

在没有读完数据的时候,不能在中间就退出dfs。

很好的一道题。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 using namespace std;
 5 bool dfs(int &w)
 6 {
 7     int w1,d1,w2,d2;
 8     scanf("%d%d%d%d",&w1,&d1,&w2,&d2);
 9     bool f1=1,f2=1;
10     if(w1==0) f1=dfs(w1);
11     if(w2==0) f2=dfs(w2);
12     w=w1+w2;
13     return f1&&f2&&(w1*d1==w2*d2);
14 }
15 int main()
16 {
17     int T;
18     scanf("%d",&T);
19     while(T--)
20     {
21         int w;
22         if(dfs(w)) printf("YES\n");
23         else printf("NO\n");
24         if(T) printf("\n");
25     }
26 }

 

你可能感兴趣的:(mobile)