半个多月没训练了,这要上课了,先恢复训练一下hhh
这是一道很简单的思维
题目链接
给定 a , b , c a,b,c a,b,c三个整数,每次操作可任选其中一个数让他减少 1 1 1,每到 7 7 7的倍数次会让三个数同时减少 1 1 1,问是否有可能在某次让三个数同时等于 0 0 0
发现每连续减去六次 1 1 1会减去一次 3 3 3,所以符合答案的三个数的和一定严格是 9 9 9的倍数。考虑到三个数要同时减到 0 0 0,而且除了 7 7 7的倍数次的操作我们都可以选择较大的两个数,所以我们需要比较最小的数和三个数一起减 1 1 1的次数,当前者大于等于后者则满足条件
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
void solve()
{
ll a, b, c;cin >> a >> b >> c;
if ((a + b + c) % 9 == 0) {
ll d = (a + b + c) / 9;
ll e = min(a, min(b, c));
if (e >= d)cout << "YES" << '\n';
else cout << "NO" << '\n';
}
else cout << "NO" << '\n';
}
int main()
{
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int t;cin >> t;
while (t--) {
solve();
}
return 0;
}