Pagini recente » Cod sursa (job #2293167) | Cod sursa (job #2323931) | Cod sursa (job #870044) | Cod sursa (job #993619) | Cod sursa (job #507318)
Cod sursa(job #507318)
using namespace std;
#include<iostream>
#include<fstream>
#define nmax 16005
int N,K,a[nmax];
ofstream fout("transport.out");
int verif(int cap)
{int steps=0,s,i;
for(i=1;i<=N;)
{ s=0;
if(a[i]>cap)
return N*16001;
while(s+a[i]<=cap && i<=N)
s+=a[i],i++;
steps++;
}
return steps;
}
void solve()
{int cnt,i;
for(cnt=1;cnt<=N*16001;cnt=cnt*2);
for(i=0;cnt;cnt/=2)
{
if(i+cnt<=N*16001)
if(verif(i+cnt)>K)
i=i+cnt;
}
fout<<i+1<<"\n";
}
void cit()
{int i;
ifstream fin("transport.in");
fin>>N>>K;
for(i=1;i<=N;i++)
{
fin>>a[i];
}
fin.close();
}
int main()
{
cit();
solve();
fout.close();
return 0;
}