Cod sursa(job #3258151)
| Utilizator | Data | 21 noiembrie 2024 12:00:07 | |
|---|---|---|---|
| Problema | Grupuri | Scor | 2 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.65 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
int n,k;
int v[100003];
inline bool cautb(int mij)
{
int nrc=0,c=0;
for (int i=n;i>=1;i--)
{
c+=v[i];
if (c>=mij)
{
nrc++;
c=0;
}
if (nrc==mij) return 1;
}
return 0;
}
int main()
{
fin>>k>>n;
for (int i=1;i<=n;i++)
fin>>v[i];
int st=1,dr=1e9;
while (st<=dr)
{
int mij=((st+dr)>>1);
if (cautb(mij))
st=mij+1;
else
dr=mij-1;
}
fout<<st;
return 0;
}
