Pagini recente » Cod sursa (job #330141) | Cod sursa (job #2328448) | Cod sursa (job #2007243) | Cod sursa (job #970978) | Cod sursa (job #1223858)
#include<fstream>
#include<algorithm>
using namespace std;
const int NM = 100005;
int a[NM], N;
int main(){
ifstream cin("avioane.in");
ofstream cout("avioane.out");
int i,j;
cin >> N;
for(i=1;i<=N;++i) cin >> a[i];
sort(a+1,a+N+1);
long long SMAX = 0, Sum = 0;
int l,r,mid1,mid2;
for(i=N;i>1;--i)
{
Sum = 1LL * (N-i+1) * a[i];
l = 1; r = i-1;
while(r - l > 2)
{
mid1 = (l+l+r) / 3;
mid2 = (l+r+r) / 3;
if(1LL * a[mid1] * (i - mid1) <= 1LL * a[mid2] * (i-mid2)) l = mid1;
else r = mid2;
}
if(1LL * a[l] * (i - l) <= 1LL * a[l+1] * (i-l-1)) l++;
if(1LL * a[l] * (i - l) <= 1LL * a[r] * (i-r)) l = r;
SMAX = max(SMAX, Sum + 1LL * a[l] * (i-l));
}
cout << SMAX << '\n';
return 0;
}