Pagini recente » Cod sursa (job #3219078) | Cod sursa (job #3155931) | Cod sursa (job #2687952) | Cod sursa (job #2752643) | Cod sursa (job #3258768)
#include <fstream>
using namespace std;
int v[100010];
long long k, n, i, g, st, dr;
long long suma, s = 0;
int main () {
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
fin>>k>>n;
for (i=1;i<=n;i++) {
fin>>v[i];
s += v[i];
}
///for (g=1;;g++) {
st = 1; /// g minim
dr = s; /// g maxim
while (st <= dr) {
long long mid = (st + dr) / 2;
suma = 0;
for (i=1;i<=n;i++)
if (v[i] > mid)
suma += mid;
else
suma += v[i];
if (suma < k*1LL*mid) /// inseamna ca am ales un mid prea mare, raspunsul este nu, deci caut in stanga
dr = mid-1;
else
st = mid+1;
}
///}
fout<<dr;
return 0;
}
/**
G
1 DA
2 DA
3 DA
4 DA
5 DA dr
6 NU st
7 NU
8 NU
9 NU
10 NU
11 NU
12 NU
13 NU
14 NU
**/