Cod sursa(job #586181)

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