Pagini recente » Cod sursa (job #2895481) | Cod sursa (job #1057797) | Cod sursa (job #1889658) | Cod sursa (job #1103067) | Cod sursa (job #2132484)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int a[16005] , n , k;
int Check(int val)
{
int nrsecv , s;
nrsecv = 1;
s = 0;
for(int i = 1 ; i <= n ; i++)
{
if(a[i] > val)
return 0;
s += a[i];
if(s > val)
{
nrsecv++;
s = a[i];
}
}
return (nrsecv <= k);
}
int main()
{
int stg = 1 , drp = 16005 * 16005 , mij , poz = 0;
fin >> n >> k;
for(int i = 1 ; i <= n ; i++)
fin >> a[i];
while(stg <= drp)
{
mij = (stg + drp) / 2;
if(Check(mij))
{
poz = mij;
drp = mij - 1;
}
else stg = mij + 1;
}
fout << poz << "\n";
fin.close();
fout.close();
return 0;
}