Cod sursa(job #752406)
| Utilizator | Data | 28 mai 2012 16:24:33 | |
|---|---|---|---|
| Problema | Transport | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.47 kb |
#include<fstream>
using namespace std;
int v[100005],t,k,i,vol,m,c,n,s,d,x;
int main ()
{
ifstream in("transport.in");
ofstream out("transport.out");
in>>n>>k;
for(i=1;i<=n;i++)
{
in>>v[i];
if(v[i]>s)
s=v[i];
d=d+v[i];
}
x=s;
while(s<=d)
{
m=(s+d)/2;
t=1; vol=0;
for(i=1;i<=n;i++)
{
if(v[i]+vol>m)
{
t++;
vol=v[i];
}
else
vol=vol+v[i];
}
if(t<=k)
{
c=m;
d=m-1;
}
else
s=m+1;
}
out<<c<<endl;
return 0;
}