Pagini recente » Cod sursa (job #1813637) | Cod sursa (job #819636) | Cod sursa (job #1221729) | Cod sursa (job #466910) | Cod sursa (job #895717)
Cod sursa(job #895717)
#include <iostream>
#include <cstdio>
#include <fstream>
using namespace std;
int KTran,NSal,a[16000],li,lf;
void citire()
{
ifstream fin("transport.in");
fin>>NSal>>KTran;
for(int i=1;i<=NSal;i++)
{fin>>a[i];
lf+=a[i];
if(li<a[i]) li=a[i];
}
}
int ok (int b)
{
int tran=0,con=0;
for(int i=1;i<=KTran;i++)
{
while(tran+a[con+1]<b) {
tran+=a[++con];
if(con==NSal) break;
}
if(con==NSal) break;
tran=0;
}
if (con==NSal) return 1;
return 0;
}
int main()
{
ofstream fout("transport.out");
citire();
int m;
while(li<=lf)
{
m=(li+lf)/2;
if(ok(m)) lf=m-1;
else li=m+1;
}
cout<<m;
return 0;
}