ABC027_B

島の人口を均等に分散すべく橋をかける問題
f:id:umashika5555:20170301075423p:plain
総人口/島の数で目標値を求め,その状態にしていったときに隣の島に流入、流出(マイナス流入)を加算していく.

#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;
}