Pagini recente » Cod sursa (job #2372127) | Cod sursa (job #2716484) | Cod sursa (job #1941357) | Cod sursa (job #1865295) | Cod sursa (job #2862299)
/*Pe prima linie a fisierului transport.in
se afla numerele intregi N si K (separate printr-un spatiu).
Pe fiecare din urmatoarele N linii se afla un numar intreg,
reprezentand volumul unei saltele. Prima din aceste N linii contine
volumul saltelei din varful stivei, a doua linie contine volumul
celei de-a doua saltele, etc.
Date de iesire
In fisierul transport.out veti afisa un singur numar intreg,
reprezentand capacitatea minima pe care trebuie sa o aiba camionul
pentru a putea transporta cele N saltele efectuand maxim K
transporturi.*/
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int v[16005],n,k;
bool verif(int c)
{
int contor=0,s;
for(int i=0;i<n;i++)
{
s=v[i];
while(s<=c && i<n)
{
i++;
s=s+v[i];
}
i--;
contor++;
}
if(contor>k)
return 0;
return 1;
}
int main()
{
int l=0, r=16000*16000,m;
fin>>n>>k;
for(int i=0;i<n;i++)
fin>>v[i];
while(l<r)
{
m=(l+r)/2;
if(verif(m))
{
r=m;
}
else
{
l=m+1;
}
}
fout<<l;
return 0;
}