UVA - 839 Not so Mobile

来源:互联网 发布:javascript实例小游戏 编辑:程序博客网 时间:2024/06/05 20:28

题目大意:树状天平。每一行输入 w1,d1,w2,d2,若 w1×d1 == w2×d2,则平衡。当 w 为 0,说明有一个子天平,w1,w2 同时为 0,下一行给出 w1 的子天平信息。

解题思路:递归输入,同时判断,不平衡时返回 0。

#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>using namespace std;int f(int& w) {    int w1, d1, w2, d2;    int l = 1, r = 1, tag = 1;    scanf("%d%d%d%d", &w1, &d1, &w2, &d2);    if (!w1) l = f(w1);    if (!w2) r = f(w2);    w = w1 + w2;    if (w1 * d1 != w2 * d2) tag = 0;    return l && r && tag;}int main() {    int T, w = 1;    scanf("%d", &T);    while (T--) {        printf(f(w)?"YES\n":"NO\n");        if (T) printf("\n");    }return 0;}
0 0
原创粉丝点击