Pagini recente » Cod sursa (job #1011287) | Cod sursa (job #2478493) | Cod sursa (job #3038367) | Cod sursa (job #2522277) | Cod sursa (job #586124)
Cod sursa(job #586124)
#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);
R=0;
for(i=0;i<N;++i){
if(nr[i]==red[R].val)
++red[R].cnt;
else{
red[++R].val=nr[i];
red[R].cnt=1;
}
}
ce=N;
for(i=1;i<=R;++i){
if(ce*red[i].val>se){
se=ce*red[i].val;
valoare=red[i].val;
}
ce-=red[i].cnt;
}
for(i=R;red[i].val>=valoare;--i){
cb+=red[i].cnt;
sb=cb*(red[i].val-valoare);
if(sb+se>sol)
sol=sb+se;
}
printf("%lld\n",sol);
fclose(stdin);
fclose(stdout);
return 0;
}