Pagini recente » Cod sursa (job #2832471) | Cod sursa (job #2249831) | Cod sursa (job #3133658) | Cod sursa (job #54196) | Cod sursa (job #1727619)
#include <bits/stdc++.h>
using namespace std;
int a[16005],n,k;
void Citire()
{
int i;
ifstream fin ("transport.in");
fin >> n >> k;
for(i=1; i<=n; i++)
fin >> a[i];
fin.close();
}
int Imparte(int L)
{
int i, suma = 0,secv=1;
for(i=1; i<=n; i++)
{
if(a[i]>L)return 0;
suma+=a[i];
if(suma > L)
{
secv++;
suma = a[i];
}
}
if(secv<=k)return 1;
return 0;
}
int CautBin()
{
int st, dr, m, poz;
st = 1; dr = 256000000; poz = 0;
while (st <= dr)
{
m = (st + dr) / 2;
if (Imparte(m)==1)
{
poz = m;
dr = m - 1;
}
else st = m + 1;
}
return poz;
}
int main()
{
int x;
ofstream fout("transport.out");
Citire();
x=CautBin();
fout << x << "\n";
fout.close();
return 0;
}