1 solutions
-
2
#include<bits/stdc++.h> using namespace std; int n; int a[105]={}; int aver,sum=0; int ans=0; /* aver记录要达到的牌数 sum记录纸牌总数 ans记录移牌次数 */ int main(){ cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; sum+=a[i]; } //边输入边累加 aver=sum/n; //算平均值 for(int i=0;i<n;i++){ if(a[i]>aver) a[i+1]-=aver-a[i],ans++; if(a[i]<aver) a[i+1]-=aver-a[i],ans++; //施行移牌操作 //同时记录次数 } cout<<ans<<"\n"; //输出即可 return 0; }
这是贪心题吗?
- 1
Information
- ID
- 31
- Time
- 1000ms
- Memory
- 125MiB
- Difficulty
- 2
- Tags
- # Submissions
- 53
- Accepted
- 18
- Uploaded By