CF1294A Collecting Coins
题面传送门
好无聊的题。英文好的同学跳过下面一段。
题意简述:给你\(a,b,c,d\),\(x1+x2+x3=d\)且\(a+x1=b+x2=c+x3\)。求任意一组\(x1\),\(x2\),\(x3\)。
那么我们只要先将所有补成一样的并使其最少,然后再判断,如果剩下的\(d\)为负或\(d\%3\neq 0\),那么不能,反之能。
代码实现:
#include<cstdio>
#include<algorithm>
using namespace std;
int t,a[5],ans,tot,pus;
int main(){
scanf("%d",&t);
while(t--){
scanf("%d%d%d%d",&a[1],&a[2],&a[3],&ans);
sort(a+1,a+4);
ans-=a[3]-a[1]+a[3]-a[2];
if(ans<0||ans%3) printf("NO\n");
else printf("YES\n");
}
return 0;
}