Pagini recente » Cod sursa (job #2051683) | Cod sursa (job #2099504) | Cod sursa (job #654449) | Cod sursa (job #397273) | Cod sursa (job #634890)
Cod sursa(job #634890)
# include <iostream>
# include <fstream>
# include <algorithm>
# define DIM 100003
# define INF 2000000000
# define max(a,b) (a>b?a:b)
using namespace std;
int n, w[DIM], v[DIM], sol=-INF, p[DIM], m, ap[DIM], a[DIM];
void read ()
{
ifstream fin ("avioane.in");
fin>>n;
for(int i=1;i<=n;++i)
fin>>w[i];
sort(w+1,w+n+1);
for (int i=1;i<=n;++i)
if (w[i]!=w[i-1])
ap[m]=ap[m-1]+a[m], v[++m]=w[i], a[m]=1;
else
++a[m];
}
void solve ()
{
int q=0;
for (int i=1;i<=m;++i)
{
while (q<i && (ap[i-1]-ap[q-1])*v[q]<=(ap[i-1]-ap[q])*v[q+1])
++q;
sol=(max(sol,(ap[i-1]-ap[q-1])*v[q]+(n-ap[i-1])*v[i]));
}
}
int main ()
{
read ();
solve ();
ofstream fout ("avioane.out");
fout<<sol;
return 0;
}