2013年9月28日 星期六

UVA-11300

UVA-11330 Spreading the Wealth


#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;
int main(){
    int n,i;
    unsigned long long ans;
    vector <long long>money;
    long long equal;
    unsigned long long temp;
    while(scanf("%d",&n)==1){
        money.clear();
        equal=0;ans=0;
        for(i=0;i<n;i++){
            scanf("%lld",&temp);
            money.push_back(temp);
            equal+=temp;
        }
        equal/=n;
        for(i=0;i<n;i++){
            money[i]=money[i]-equal;
            if(i>1){
                money[i]+=money[i-1];
            }
        }
        money[0]=0;
        sort(money.begin()++,money.end());
        for(i=0;i<n;i++){
            if(money[n/2]>=money[i])
                temp=money[n/2]-money[i];
            else
                temp=money[i]-money[n/2];
            ans+=temp;
        }
        printf("%lld\n",ans);
    }
return 0;
}


這題是數學分析
在下抓bug抓超久的...

沒有留言:

張貼留言

TEST