ABC027_B
島の人口を均等に分散すべく橋をかける問題
総人口/島の数で目標値を求め,その状態にしていったときに隣の島に流入、流出(マイナス流入)を加算していく.
#include <bits/stdc++.h> using namespace std; int main() { int n,a[100],total=0; cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; total += a[i]; } if(total%n!=0){ cout<<-1<<endl; }else{ int t = total/n;//目標とする人数 int ans = 0; for(int i=0;i<n-1;i++){ if(a[i]!=t){ a[i+1]+=a[i]-t; ans++; } } cout<<ans<<endl; } return 0; }