题意
给定四个盒子装玩具,四个盒子里面玩具的有趣值如下:
第一个:(-∞, -1]
第二个:(-1, 0)
第三个:(0, 1)
第四个:[1, +∞)
四个盒子里面分别装有A,B,C,D个玩具,两个玩具进行融合,融合后的有趣值为融合前的两个玩具有趣值相乘。最后将会融合成一个超级玩具,问超级玩具最后有可能在那些盒子里。
思路
题目说的是可能出现在那些盒子里。直接进行模拟,如果A,B两个盒子玩具个数相加为奇数,则有可能会在A,B盒子里面,在A盒子里面我们只需要判断A,D里面是否有玩具,在B盒子里面我们只需要判断B,C里面是否有玩具,如果A,B两个盒子玩具个数相加为偶数,也是如此。
AC代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
void solve() {
int a, b, c, d;
int fa = 0, fb = 0, fc = 0, fd = 0;
scanf("%d%d%d%d", & a, &b, &c, &d);
if ((a + b) & 1) {
if (b || c) {
fb = 1;
}
if (a || d) {
fa = 1;
}
} else {
if (b || c) {
fc = 1;
}
if (a || d) {
fd = 1;
}
}
if (fa) {
printf("Ya ");
} else {
printf("Tidak ");
}
if (fb) {
printf("Ya ");
} else {
printf("Tidak ");
}
if (fc) {
printf("Ya ");
} else {
printf("Tidak ");
}
if (fd) {
printf("Ya\n");
} else {
printf("Tidak\n");
}
}
int main() {
int t;
scanf("%d", &t);
for (int i = 0; i < t; ++i) {
solve();
}
return 0;
}