Pagini recente » Cod sursa (job #996147) | Cod sursa (job #1206171) | Cod sursa (job #2937807) | Cod sursa (job #1538024) | Cod sursa (job #902555)
Cod sursa(job #902555)
#include <iostream>
#include <cstdio>
#include <fstream>
# define FOR(i,j,n) for(int i=j;i<=n;i++)
using namespace std;
int KTran,NSal,a[16003],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)
// 1 daca se poate
{
int tran=0,con=0;
FOR(i,1,KTran)
{
while(tran+a[con+1]<b)
{tran+=a[++con];
if(con==NSal) return 1;
}
tran=0;
}
return 0;
}
int main()
{
ofstream fout("transport.out");
citire();
int m;
while(li<=lf)
{
m=(li+lf)/2;
if(ok(m)==1) lf=m-1;
else li=m+1;
}
fout<<m;
return 0;
}