Pagini recente » Cod sursa (job #2747643) | Cod sursa (job #3154725) | Cod sursa (job #2759518) | Cod sursa (job #1397809) | Cod sursa (job #1279412)
#include <fstream>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int n,k,v[16001];
int verificare(int x)
{
int s=0,a=0;
for(int i=1; i<=n; i++)
{
if(s+v[i]>x)
{
a++;
s=v[i];
}
else
s+=v[i];
}
if(a>=k)
return 1;
else
return 0;
}
int main()
{
int i,s=0,a;
in>>n>>k;
for(i=1; i<=n; i++)
{
in>>v[i];
s=s+v[i];
}
for(a=1; a<=s; a=a*2)
{
}
int sol=s;
for(int step=a; step>0; step/=2)
{
if(sol-step>0 && verificare(sol-step)==0)
sol-=step;
}
out<<sol;
return 0;
}