Cod sursa(job #821932)

Utilizator andreidanAndrei Dan andreidan Data 22 noiembrie 2012 19:57:35
Problema Avioane Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <cstdio>
#include <algorithm>
#define val (( n + 1) - i)
typedef unsigned long long ull;

using namespace std;

int a[1000005];


int main(){
    int i , n;
    int pozfin;
    ull sum = 0 , max = 0 , max2 = 0;

    freopen("avioane. in" , "r" , stdin);
    freopen("avioane. out" , "w" , stdout);

    scanf("%d", &n);


    for( i = 1; i <= n ; ++ i )
        scanf("%d", &a[i]);

    sort( a + 1, a + n + 1);

    for( i = 1 ; i < n ; ++i ){
        if( a[i] * ( n - i) > max ) {
            max = a[i] * ( n - i+1);
            pozfin = i;
        }
    }

    for( i = n ; i > pozfin ; --i ){
        sum = ( a[i] * val ) + max;

        if( sum - ( a[pozfin] * val ) > max2 ) { max2 = sum - ( a[pozfin] * val ); }
    }

    printf("%lld", max2);

    }