题解:P11371 「CZOI-R2」糖果

· · 题解

题解:P11371 「CZOI-R2」糖果

前言:

这是该蒟蒻的第一篇题解,请多支持支持。

此题有些水,但仍是一道很好的签到题。

题目做法

“幼儿园老师希望所有小朋友的糖果数量相同”这句话可以翻译为:“所有值都能通过加k的方式变成数组a中的最大值”

于是,我们可以先求出数组中的最大值, 设为mx,再依次与数组中的元素进行做差,如果差不能被整除,则输NO,结束程序。

经过判断后没有不符合判断条件,就对所有的差(与mx的)除以k以后相加,即时答案。

p.s.: 不开longlong见祖宗

代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,cnt,mx=-1e9,k,a[100006];
signed main()
{
    cin>>n>>k;
    for(int i=1;i<=n;i++){cin>>a[i];mx=max(mx,a[i]);} 
    for(int i=1;i<=n;i++){
        if((mx-a[i])%k!=0){
            cout<<"NO";
            return 0;
        }
    } 
    cout<<"YES ";
    for(int i=1;i<=n;i++) cnt+=(mx-a[i])/k;
    cout<<cnt;
    return 0;
}