Cod sursa(job #585592)

Utilizator swift90Ionut Bogdanescu swift90 Data 30 aprilie 2011 09:56:24
Problema Avioane Scor 0
Compilator cpp Status done
Runda Algoritmiada 2011, Runda Finală, Open Marime 0.55 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
long long N,nr[100100],sol,se,sb;
int main(){
	freopen("avioane.in","r",stdin);
	freopen("avioane.out","w",stdout);
	int i,j,;
	scanf("%lld",&N);
	for(i=0;i<N;++i)
		scanf("%lld",&nr[i]);
	sort(nr,nr+N);
	nr[N]=0;
	for(i=N,j=N;i>=0;--i){
		se=(i-j)*nr[j];
		sb=(N-i)*nr[i];
		if(j){
			while(se<=(i-j+1)*nr[j-1]){
				--j;
				se=(i-j)*nr[j];
				if(!j)
					break;
			}
		}
		if(se+sb>sol)
			sol=se+sb;
	}
	printf("%lld\n",sol);
	fclose(stdin);
	fclose(stdout);
	return 0;
}