Cod sursa(job #1223845)

Utilizator ion824Ion Ureche ion824 Data 28 august 2014 23:47:31
Problema Avioane Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<fstream>
#include<algorithm>
using namespace std;
const int NM = 100005;

int a[NM], N;

int main(){
	ifstream cin("avioane.in");
	ofstream cout("avioane.out");
	int i,j;
	
	cin >> N;
	for(i=1;i<=N;++i) cin >> a[i];
	sort(a+1,a+N+1);
	
	long long SMAX = 0, Sum = 0;
	int l,r,mid;
	
	for(i=N;i>1;--i)
	{
		Sum = 1LL * (N-i+1) * a[i];
		
		l = 1; r = i-1;
		
		while(r - l > 1)
		{
			mid = (l+r) / 2;
			if(1LL * a[l] * (i - l) <= 1LL * a[mid] * (i-mid)) l = mid;
			  else r = mid;		
		}
		if(1LL * a[l] * (i - l) <= 1LL * a[r] * (i-r)) l = r;
		
		SMAX = max(SMAX, Sum + 1LL * a[l] * (i-l));	
	}
	
	cout << SMAX << '\n';
	
	return 0;
}