Cod sursa(job #3295503)
Utilizator | Data | 6 mai 2025 10:18:09 | |
---|---|---|---|
Problema | Transport | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.51 kb |
#include <iostream>
using namespace std;
int main()
{ int n,k,v[16001],mij,i,st,gasit=0,t=1,s=0,sol;
long long dr;
cin>>n>>k;
for(i=1; i<=n; i++)
{
cin>>v[i];
}
st=v[1];
dr=v[1];
for(i=2; i<=n; i++)
{
if(v[i]>st) st=v[i];
dr=dr+v[i];
}
while( st<=dr)
{ mij=(st+dr)/2;
t=1;
s=0;
for(i=1; i<=n; i++)
{ if(s+v[i]<=mij) s=s+v[i];
else{t++;
s=v[i];}
}
if(t<=k) {sol=mij;
dr=mij-1; }
else{ st=mij+1;
}
}
cout<<t;
return 0;
}