CF-1294-A Collecting Coins

Codeforces Round #615 (Div. 3)

CF-1294-A Collecting Coins_第1张图片

 传送门:http://codeforces.com/contest/1294/problem/A

题目样例:

input
5
5 3 2 8
100 101 102 105
3 2 1 100000000
10 20 15 14
101 101 101 3

output
YES
YES
NO
NO
YES

题目大意:Polycarp有三个姐妹,分别有a,b,c枚硬币,他带回来n枚硬币,他想把n枚硬币全部分给三个姐妹,使得三个姐妹的硬币数一样多。t个测试样例,每个测试样例给定a,b,c,n。如果能将n枚硬币全部分发出去使得三个姐妹硬币数一样多,输出YES,否则输出NO。

思路:三个姐妹之间硬币无法分享,来源只有Polycarp的n枚硬币。如果n枚硬币能将三个姐妹的差距补齐(都变为max(a,b,c))且剩下的能够平分给三姐妹则输出YES,否则输出NO

AC代码:

#include
using namespace std;
int a[3];
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        int n;
        scanf("%d%d%d%d",&a[0],&a[1],&a[2],&n);
        sort(a,a+3);
        int sum=a[2]-a[1]+a[2]-a[0];
        if( n-sum>=0 && (n-sum)%3==0 )
            printf("YES\n");
        else
            printf("NO\n");
    }
    return 0;
}

 

你可能感兴趣的:(题集)