Pagini recente » Cod sursa (job #1170695) | Cod sursa (job #1901831) | Cod sursa (job #1538713) | Cod sursa (job #3197136) | Cod sursa (job #1053206)
#include <fstream>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int main()
{
int n,k,sf=0,start=0,c,q=0,x,mij=0;
fin>>n>>k;
int a[n];
for(int i=0;i<n;i++)
{
fin>>a[i];
sf+=a[i];
if(start<a[i]) start=a[i];
}
while(1)
{
mij=(start+sf)/2;
x=mij;
count=0;
for(int i=0;i<n;i++)
{
if(x-a[i]>=0) x-=a[i];
if(i!=n-1&&x-a[i+1]<0)
{
x=mij;
c++;
}
if(x>=0&&i==n-1) c++;
}
if(c>k)
start=mij+1;
else if(c==k)
{
q=mij;
sf=mij;
}
else if(c<k)
{
sf=mij-1;
}
if(start>=sf) break;
}
fout<<q;
}