Cod sursa(job #617131)

Utilizator costyv87Vlad Costin costyv87 Data 13 octombrie 2011 23:19:50
Problema Avioane Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <cstdio>
#include <algorithm>
using namespace std;
FILE *f,*g;
#define nmax 100100;
int v[100100],l[100100],cni,i,j,n;
long long r[100100],cn;

int main() {
f=fopen("avioane.in","r");
g=fopen("avioane.out","w");

fscanf(f,"%d",&n);
for (i=1;i<=n;i++)
    fscanf(f,"%d",&v[i]);

sort(v+1,v+n);
l[1]=1;
r[1]=v[1];

for (i=2;i<=n;i++) {
    for (j=l[i-1],cn=-1;j<=i;j++)
        if (cn<(long long)(i-j+1)*v[j])  {
            cn=(long long)(i-j+1)*v[j];
            cni=j;
            }
    l[i]=cni;
    r[i]=cn;
    }

long long sol = 0;

for(int i = 2; i <= n; i++) {
    long long x = (long long ) (n - i + 1) * v[i] + r[i - 1];
    if(x > sol) {
        sol = x;
        }
    }

fprintf(g,"%lld",sol);

fclose(g);
return 0;
}