4 solutions
-
6
#include<bits/stdc++.h> using namespace std; const int N=110; int a[N]; int main() { int n; cin>>n; int s=0; for(int i=1;i<=n;i++) { cin>>a[i]; s+=a[i]; } int res=0; int ave=s/n;//计算平均纸牌数 if(ave*n!=s) //不能够均分 { res=-1; } else { for(int i=1;i<=n;i++) { if(ave!=a[i]) //当前不是平均值 { res++; a[i+1]=a[i+1]-(ave-a[i]); //从a[i+1] 移动差值过来 } } } cout<<res; return 0; } -
1
#include<bits/stdc++.h> using namespace std; int a[37420]; int main() { int n,s=0;cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; s+=a[i]; } int res=0; int t=s/n; if(t*n!=s) { cout<<-1; return 0; } else { for(int i=1;i<=n;i++) { if(a[i]!=t) { res++; a[i+1]=a[1+i]-(t-a[i]); } } } cout<<res; return 0; } -
-4
#iostream<inclued> using namespace std; const int N=110; int a[N]; int main() { int n; string si; cin>>s; bool s=0; for(int i=0;i<n;i++) { cin>>a[i]; si+=a[i]; } int res=1; int ave=s/si; if(ave*n==s) res=1; else { for(int i=len(si);i>=n;n--) { if(n==a[i]) { a[i+1]=a[i+1]-(ave-a[i]); } } } cout<<res; return 0; }
- 1
Information
- ID
- 1012
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 3
- Tags
- (None)
- # Submissions
- 73
- Accepted
- 27
- Uploaded By