Pagini recente » Cod sursa (job #1035110) | Cod sursa (job #1539716) | Cod sursa (job #1438718) | Cod sursa (job #982287) | Cod sursa (job #2091293)
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n,k,a[16005],i;
bool verificare (int valoare)
{
int i=1;
int transporturi=0;
int s=0;
while(i<=n && a[i]<=valoare)
{
s=0;
while(s+a[i]<=valoare && i<=n)
{
s=s+a[i];
i++;
}
transporturi++;
}
if(transporturi<=k && i==n+1)
return true;
else
return false;
}
int main()
{
f>>n>>k;
for(i=1; i<=n; i++)
f>>a[i];
long long int step=1<<28;
long long int step2=0;
while(step)
{
if(verificare(step+step2)==false)
step2+=step;
step/=2;
}
step2++;
g<<step2<<'\n';
return 0;
}