这也是道水题,睡觉去了。
#include<iostream> using namespace std; bool mobile(int& W) { int W1, W2, D1, D2; bool b1 = true, b2 = true; cin >> W1 >> D1 >> W2 >> D2; if(!W1) b1 = mobile(W1); if(!W2) b2 = mobile(W2); W = W1 + W2; return b1 && b2 && (W1 * D1 == W2 * D2); } int main() { int T, W, Case = 0; cin >> T; while(T--) { if(Case++) cout << endl; mobile(W) ? cout << "YES\n" : cout << "NO\n"; } return 0; }