Cod sursa(job #586223)

Utilizator tudorsTudor Siminic tudors Data 30 aprilie 2011 14:09:00
Problema Avioane Scor 10
Compilator cpp Status done
Runda Algoritmiada 2011, Runda Finală, Open Marime 0.75 kb
#include <stdio.h>
#include <algorithm>
#define N 100005
using namespace std;
int n;
long long A[N];
long long sol=0;
FILE *f,*g;
void citire()
{
	int i;
	fscanf(f,"%d",&n);
	for (i=1;i<=n;++i)
		fscanf(f,"%lld",&A[i]);
	sort(A+1,A+n+1);
}
long long myfct(int point)
{
	int i;
	long long suma,sum;
	suma=0;
	sum=A[n]+((n-point)*A[point]);
	i=n;
	while (sum>=suma && i>=point)
	{
		i--;
		suma=sum;
		sum=(A[i]*(n-i+1))+(A[point]*(i-point));
	}
	return suma;
}
void solve()
{
	int i;
	long long s;
	for (i=1;i<=n;i++)
	{
		s=myfct(i);
		if (s>sol)
			sol=s;
	}
	fprintf(g,"%lld",sol);
}
int main()
{
	f=fopen("avioane.in","r");
	g=fopen("avioane.out","w");
	citire();
	solve();
	fclose(f);
	fclose(g);
	return 0;
}