Cod sursa(job #244002)

Utilizator diana_sandrudienutza sandru diana_sandru Data 14 ianuarie 2009 12:55:52
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.44 kb
#include<fstream.h>
ifstream f("transport.in");
ofstream g("transport.out");
int d=32000,s=0,m,cp,sol,n,k,i,S[16001];
int capacitate(int x)
{
int nr=0,c=0;
for(i=1;i<=n;i++)
if(S[i]+c<=x)
c=c+S[i];
else
{
nr++;
c=S[i];
}
return nr;
}
int main(void)
{
f>>n>>k;
for(i=1;i<=n;i++)
f>>S[i];

while(s<=d)
{
m=(s+d)/2;
cp=capacitate(m);
if(cp<=k)
{
	sol=cp;
	d=m-1;
}
else
	s=m+1;
}

g<<sol<<'\n';
return 0;
}