Cod sursa(job #2350561)
| Utilizator | Data | 21 februarie 2019 15:28:19 | |
|---|---|---|---|
| Problema | Grupuri | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.72 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream in("grupuri.in");
ofstream out("grupuri.out");
vector<int> v;
long long n, k, sol, sum;
int main()
{
in>>k>>n;
for(int i = 1; i <=n ; ++i)
{
int nr;
in>>nr;
sum += nr;
v.push_back(nr);
}
long long st = 1, dr = sum / k, mij;
while(st <= dr)
{
mij =(st + dr) / 2;
sum = 0;
for(int i = 0; i < n; ++i)
{
if(v[i] <= mij) sum += v[i];
else sum += mij;
}
if(mij * k <= sum)
{
st = mij + 1;
sol = mij;
}
else
dr = mij - 1;
}
out<<sol;
return 0;
}
