这题处理两次,看了别人的代码才知道,原来判断不平衡后,不能立即返回,必须将输入全部读入,否则会影响下一组的解答。
#include <iostream>
using namespace std;
int f()
{
int dl , wl;
int dr , wr;
int ok = 1;
cin >> wl >> dl >> wr >> dr;
if(!wl)
{
wl = f();
if(wl<0) ok = 0;
}
if(!wr)
{
wr = f();
if(wr < 0) ok = 0;
}
if(!ok || wl * dl != wr * dr) return -1;
return wl + wr ;
}
int main()
{
int n;
cin >> n;
for(int i = 0 ; i < n ; ++i)
{
if(f() < 0) cout << "NO" << endl;
else cout << "YES" << endl;
if(i < n-1) cout << endl;
}
return 0;
}