Pagini recente » Cod sursa (job #2383109) | Cod sursa (job #2678955) | Cod sursa (job #2613026) | Cod sursa (job #2095981) | Cod sursa (job #540449)
Cod sursa(job #540449)
#include<fstream>
#include<algorithm>
using namespace std;
ofstream fout("transport.out");
void read();
void cauta(int, int);
int verif(int val);
int mij;
int n, k, c;
int a[16005];
int main()
{
read();
cauta( a[1], 1000000000);
fout.close();
return 0;
}
void read()
{
ifstream fin("transport.in");
fin >> n >> k;
for(int i = 1; i <= n; ++i)
fin >> a[i];
fin.close();
}
void cauta(int st, int dr)
{
mij = (st + dr) / 2;
int rasp = verif(mij);
if( st != dr )
{
if( rasp == 1)
cauta(st, mij);
else
cauta(mij+1 , dr);
}
else
{
fout << mij;
exit(1);
}
}
int verif(int val)
{
int cont = 1, s = 0;
for(int i = 1; i <= n; ++i)
{
if( s + a[i] <= val)
s = s+ a[i];
else
{
--i;
s = 0;
++cont;
}
}
if( cont > k)
return -1;
else
if( cont <= k)
return 1;
}