Cod sursa(job #65224)

Utilizator mihai0110Bivol Mihai mihai0110 Data 7 iunie 2007 18:39:42
Problema Transport Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include<fstream.h>
ifstream f("transport.in");
ofstream g("transport.out");
int i,n,min,max,cap,gas,nr,s,k,p,a[16001];
int main()
{
f>>n>>k;
for(i=1;i<=n;i++)
{
f>>a[i];
if(a[i]>min)
min=a[i];
max+=a[i];
}
s=s;
while(max-min>0)
{
cap=(min+max)/2;
nr=1;
s=0;
for(i=1;i<=n;i++)
if(s+a[i]>cap)
{
nr++;
s=a[i];
}
else
s+=a[i];
if(nr>k)
min=cap+1;
else
max=cap-1;
}

nr=1;
s=0;
for(i=1;i<=n;i++)
if(s+a[i]>min)
{
nr++;
s=a[i];
}
else
s+=a[i];
if(nr==k)
g<<min;
else
g<<max;
f.close();
g.close();
return 0;
}