Pagini recente » Cod sursa (job #1353976) | Cod sursa (job #19972) | Cod sursa (job #3204222) | Cod sursa (job #351418) | Cod sursa (job #1522892)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int main()
{
int n,k,i,c,ctemp,ktemp,v[16001],suma=0;
in>>n>>k;
int maxim=0;
for(i=0;i<n;i++)
{in>>v[i];suma+=v[i];if(maxim<v[i])maxim=v[i];}
for(c=max(suma/k,maxim);c<=suma;c+=75)
{ctemp=c;ktemp=k;
for(i=0;i<n;i++)
{if(v[i]<=ctemp)ctemp-=v[i];
else {ktemp--;ctemp=c;i--; if(!ktemp)break; }
}
if((ktemp>0||(ktemp==0&&i==n))) break;
}
for(c=c-74;c<=suma;c++)
{ctemp=c;ktemp=k;
for(i=0;i<n;i++)
{if(v[i]<=ctemp)ctemp-=v[i];
else {ktemp--;ctemp=c;i--; if(!ktemp)break; }
}
if((ktemp>0||(ktemp==0&&i==n))) {out<<c;return 0;}
}
return -1;
}