Codevs 1098 均分纸牌 贪心

来源:互联网 发布:淘宝毁了dota2 编辑:程序博客网 时间:2024/06/05 09:11

Codevs 1098 均分纸牌

更改纸牌的移动顺序并不会影响最后结果。

所以我们从头开始遍历数组, 满足每一个路过的位置。

这里我没有处理已经处理过的位置纸牌的个数 = Aver(平均数);

代码:

#include <iostream>#include <cstdio>#include <queue>#include <cstring>using namespace std;const int MAXN = 1001;int P[MAXN];int main(){    int n, aver = 0;    cin >> n;    for(int i = 1; i <= n; i ++)        scanf("%d", &P[i]);    for(int i = 1; i <= n; i ++)        aver += P[i];    aver /= n;    int cnt = 0;    for(int i = 1; i <= n; i ++)    {        if(P[i] < aver)        {            P[i+1] -= (aver-P[i]);            cnt ++;        }        else if(P[i] > aver)        {            P[i+1] += (P[i]-aver);            cnt ++;        }    }    cout << cnt << endl;    return 0;}
0 0
原创粉丝点击