B. Laura and Operations(规律)
Example
input
Copy
3
1 1 1
2 3 2
82 47 59
output
Copy
1 1 1
0 1 0 :是或不行
1 0 0
存在若干数量的 、、1、2、3 ,可以执行任意次如下操作:
删除一个 � 一个 � ,添加一个 � 、、(�、�、�∈{1,2,3},�≠�≠�) 。
问能否通过操作使得只剩下 1 、只剩下 2 、只剩下 3 。
做法:
以只剩 1 举例,操作对于 、2、3 的数量的奇偶性的改变是相同的,由于最终状态 、2、3 都要有 0 个,所以初始 、2、3 数量奇偶不同则一定不行。
对于 、2、3 数量奇偶相同的情况,考虑如下操作:
若 、2、3 数量相同,则删光 、2、3 ,达成目标,否则循环:
1. 删除一组 、2、3 ,添加一个 1 。
2. 删除 1 和 、2、3 中数量较多的那个。
一轮操作之后 、2、3 数量的差一定会减少 2 。
特殊地,如果 1 的个数初始是 0 ,则必须存在一组 、2、3 才能开始操作。
#include <bits/stdc++.h>
using namespace std;
int main() {
cin.tie(0)->sync_with_stdio(false);
int T;
cin >> T;
while (T--) {
int a, b, c;
cin >> a >> b >> c;
auto check = [&](int a, int b, int c) -> bool {
return b % 2 == c % 2 and a + min(b, c);
};
cout << check(a, b, c) << ' ' << check(b, a, c) << ' ' << check(c, a, b) << '\n';
}
return 0;
}