题意: 分别有a,b,c个硬币在对应的三个人手中,我有n个硬币,问如何将这n个硬币分给这三个人使得最后三个人的硬币数相同。
思路: 先求出每个人与最多的人的硬币个数的差距,然后拿n个硬币去填补这个空缺,分过剩下来没有分的如果可以%3==0,则说明可以相同。如果不为0则说明无法分配。
水题一道:
#include<iostream> #include<algorithm> using namespace std; int main() { int t; cin>>t; while(t--) { int a,b,c,n; cin>>a>>b>>c>>n; int MAX=max(a,max(b,c)); //新学会的嘻嘻 int res=(MAX-a)+(MAX-b)+(MAX-c); n-=res; if(n >=0 && n%3==0) cout<<"YES"<<endl; else cout<<"NO"<<endl; } return 0; }
原文地址:https://www.cnblogs.com/WABoom/p/12256548.html
时间: 2024-11-03 19:19:37