Pagini recente » Cod sursa (job #329857) | Cod sursa (job #329866) | Cod sursa (job #57718) | Cod sursa (job #1486795) | Cod sursa (job #1710425)
#include <iostream>
#include <fstream>
using namespace std;
int N,K,saltele[16001];
int transporturi_necesare(int Dim)
{
int i,nr=1,s=0;
for(i=0;i<N;i++)
{
if(saltele[i]>Dim) return 256000002;
if(s+saltele[i]<=Dim)
{
s+=saltele[i];
}
else
{
s=saltele[i];
nr++;
}
}
return nr;
}
int main()
{
int i;
ifstream f("transport.in");
f>>N>>K;
for(i=0;i<N;i++) {f>>saltele[i];}
f.close();
int st=0,dr=256000001,m;
while(st<=dr)
{
m=(st+dr)/2;
//cout<<m<<endl;
if(transporturi_necesare(m)<=K) dr=m-1;
if(transporturi_necesare(m)>K) st=m+1;
}
ofstream g("transport.out");
g<<st;
g.close();
return 0;
//cout<<volum(8);
//int st=0,dr=256000001;
}