Cod sursa(job #1024270)
Utilizator | Andreea Zaharia andreea_zaharia | Data | 8 noiembrie 2013 15:11:02 |
---|---|---|---|
Problema | Grupuri | Scor | 68 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.55 kb |
#include <cstdio>
int v[100001];
int k, n;
int valid(int x)
{
int i, s = 0;
for(i=1; i<=n; i++)
s += (v[i] < x)? v[i]:x;
if(k*x <= s)
return 0;
return 1;
}
int main ()
{
freopen("grupuri.in", "r", stdin);
freopen("grupuri.out", "w", stdout);
scanf("%d%d", &k, &n);
for(int i=1; i<=n; i++)
scanf("%d", &v[i]);
int i, pas = 1<<20;
for(i = 0; pas; pas >>= 1)
if(valid(i+pas) == 0)
i += pas;
printf("%d\n", i);
return 0;
}