记录编号 | 427609 | 评测结果 | AAAAA | ||
---|---|---|---|---|---|
题目名称 | [NOIP 2002]均分纸牌 | 最终得分 | 100 | ||
用户昵称 | 是否通过 | 通过 | |||
代码语言 | C++ | 运行时间 | 0.001 s | ||
提交时间 | 2017-07-22 16:20:01 | 内存使用 | 0.35 MiB | ||
#include<bits/stdc++.h> /*诶呀不小心看评论了但还是不很懂啊... 我猜猜哈 假设只有两堆不符合,那么一次一次移过去就可以了 如果有3个,肯定把最左或者最右移向中间(或者反过来中间往两边,可以理解为移了-n张牌),再继续移到另一边 那么以此类推,只要按顺序扫一遍就出来了*/ using namespace std; int n,a[10005]; int main() { freopen("jfzp.in","r",stdin); freopen("jfzp.out","w",stdout); scanf("%d",&n); int ans=0; for(int i=1;i<=n;i++) { scanf("%d",&a[i]); ans+=a[i]; } ans=ans/n; int cnt=0; for(int i=1;i<=n;i++) { if(a[i]!=ans) { int r=a[i]-ans; a[i+1]+=r; cnt++; } } cout<<cnt; return 0; }