Cod sursa(job #585752)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 30 aprilie 2011 11:38:16
Problema Avioane Scor 0
Compilator cpp Status done
Runda Algoritmiada 2011, Runda Finală, Clasele 5-9 Marime 0.74 kb
#include <stdio.h>
#include <algorithm>

using namespace std;

long long n,maxx,s,i,ind,v[100010];

int main()
{
    freopen("avioane.in","r",stdin);
    freopen("avioane.out","w",stdout);
    scanf("%lld",&n);
    for (i=1;i<=n;++i)
        scanf("%lld",&v[i]);
    sort(v+1,v+n+1);
    for (i=1;i<=n;++i)
        if (v[i]*(n-i+1)>maxx)
        {
            maxx=v[i]*(n-i+1);
            ind=i;
        }
    s+=maxx;
    maxx/=(n-ind+1);
    for (i=ind;i<=n;++i)
        v[i]-=maxx;
    maxx=0;
    for (i=ind;i<=n;++i)
        if (v[i]*(n-i+1)>maxx)
            maxx=v[i]*(n-i+1);
    for (i=1;i<ind;++i)
        if (v[i]*(ind-i)>maxx)
            maxx=v[i]*(ind-i);
    s+=maxx;
    printf("%lld",s);
    return 0;
}