Cod sursa(job #1932445)
Utilizator | Data | 19 martie 2017 19:41:09 | |
---|---|---|---|
Problema | Transport | Scor | 40 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.65 kb |
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int i,j,n,m,k,nr,s,v[16001],st,dr,p;
int main()
{
f>>n>>k;
for(i=1;i<=n;i++)
{
f>>v[i];
s+=v[i];
}
st=s/k;
dr=s;
s=0;
while(st<dr)
{
m=st+(dr-st)/2;
nr=0;
p=1;
while(nr<=k&&p<=n)
{
s=v[p];
while(s<=m&&p<=n)
{
p++;
s+=v[p];
}
nr++;
}
if(nr<=k)
dr=m-1;
else st=m+1;
}
g<<st;
return 0;
}