在没有读完数据的时候,不能在中间就退出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 "); 23 else printf("NO "); 24 if(T) printf(" "); 25 } 26 }