Pagini recente »
Borderou de evaluare (job #173239)
|
Cod sursă (job #461634)
|
baraj_shumen_juniori_2013_1
|
Cod sursă (job #521955)
|
Cod sursă (job #546245)
Cod sursă (job
#546245)
#include <bits/stdc++.h>
using namespace std;
ifstream in ("lanterna.in");
ofstream out ("lanterna.out");
long int t[100005];
int cb(int val, int n)
{
int pos=0;
for(int msk=1<<20; msk>0; msk/=2)
if(pos+msk<=n && t[pos+msk]<=val)
pos+=msk;
if(t[pos]<val && t[pos+1]>val)
return pos+1;
else
return pos;
}
int main()
{
long long n,i,si,j,s=0;
in>>n;
for(i=1; i<=n; i++){
in>>t[i];
}
sort(t+1,t+n+1);
for(i=3; i<=n; i++){
s+=t[i];
}
i=cb(2*t[2]-t[1],n);
i=(n+1-i)/2;
si=(n-2-i)*t[1]+(2*i+1)*t[2]+s;
for(j=1; j<=i; j++)
si-=t[n+1-2*j];
out<<si;
return 0;
}