Cod sursa(job #587126)

Utilizator test9cosmin Macovei test9 Data 3 mai 2011 22:29:41
Problema Avioane Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("avioane.in");
ofstream g("avioane.out");
int a[100001],s[100001],v,n,sm,i,j,x,x1;
void citire(){
	f>>n;
	for(i=1;i<=n;++i)
		{f>>a[i];}
	sort(a+1,a+n+1);
	x=x1=1;
	i=2;
	while(x<=n)
		if(a[i]==a[x]) {x1++;i++;}
		else{
			s[x]=x1;
			x1=1;
			x=i;
			i++;
		}
	s[x]=x1;
	for(i=1;i<=n;){
		v=(n-i+s[i])*a[i];
		if(a[i]!=a[i-1]){
			x1=0;
			j=i+1;
			while(s[j]==0 && j<=n) j++;
			while(j<=n){	
				x=(n-j+s[j])*(a[j]-a[i]);
				if(x>x1) x1=x;
				j+=s[j];
			}
			v+=x1;
			if(sm<v) sm=v;
		}
		i+=s[i];
	}
}
int main(){
	citire();
	g<<sm-1<<'\n';
	g.close();
	return 0;
}