Cod sursa(job #585634)

Utilizator mihai_floreaFlorea Mihai Alexandru mihai_florea Data 30 aprilie 2011 10:30:12
Problema Avioane Scor 40
Compilator cpp Status done
Runda Algoritmiada 2011, Runda Finală, Open Marime 0.65 kb
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;

#define ff first
#define ss second
#define mp make_pair
#define pb push_back

typedef long long LL;

const int NMAX = 100005;

int N, x[NMAX];

int main()
{
	ifstream fin("avioane.in");
	fin>>N;
	for (int i=1;i<=N;++i) fin>>x[i];
	fin.close();

	sort(x+1, x+N+1);
	LL best = 0;
	int k=1;
	for (int j=1;j<=N;++j)
	{
		for (int i=k+1;i<j;++i)
			if ((LL)(j-i)*x[i] > (LL)(j-k)*x[k])
				k=i;
		best = max(best, (LL)(j-k)*x[k] + (LL)(N-j+1)*x[j]);
	}

	ofstream fout("avioane.out");
	fout<<best<<"\n";
	fout.close();

	return 0;
}