Cod sursa(job #585830)

Utilizator FlorianFlorian Marcu Florian Data 30 aprilie 2011 12:06:01
Problema Avioane Scor 50
Compilator cpp Status done
Runda Algoritmiada 2011, Runda Finală, Open Marime 0.93 kb
using namespace std;
#include<cstdio>
#include<algorithm>
#define DIM 8192
#define ll long long
char vec[DIM];
int pz;
const int MAX_N = 100007;
int A[MAX_N], N;
ll sol;
int best[MAX_N];
void cit(int &x)   
{   

	x=0;   
	while(vec[pz]<'0' || vec[pz]>'9')   
  
    if(++pz==DIM) fread(vec,1,DIM,stdin),pz=0;   
  
    while(vec[pz]>='0' && vec[pz]<='9')   
    {   
        x=x*10 + vec[pz]-'0';   
        if(++pz==DIM) fread(vec, 1, DIM, stdin),pz=0;   
    }
}
ll get( int j, int i )
{
	return 1LL * A[j] * (i - j );
}
int main()
{
	freopen("avioane.in","r",stdin); freopen("avioane.out","w",stdout);
	int i, k , j, avans;
	ll p;
	cit(N);
	for(i = 1; i <= N; ++i)
		cit( A[i] );
	sort( A + 1,  A + N + 1 );
	int b = 0;
	for(i = 1; i <= N; ++i )
	{	
		for( j = i - 1; j; --j)
		{
			p = A[i] * ( N - i + 1 ) + A[j] * ( i - j );
			if( sol < p ) sol = p;
		}
		
	}
	printf("%lld\n", sol );
	return 0;
}