Pagini recente » Cod sursa (job #1541004) | Cod sursa (job #1624003) | Cod sursa (job #1864953) | Cod sursa (job #1242179) | Cod sursa (job #1993245)
#include<fstream>
using namespace std;
int main()
{
ifstream read("transport.in");
ofstream write("transport.out");
int N,K,r=0,temp=0,ok=-1,trans=0,crash=1,mijl;
int c=256000000;
int dreapta=256000000,stanga=0;
read>>N>>K;
int v[N+1];
for(int i=1;i<N+1;++i)
{
read>>v[i];
if(v[i]>stanga)
{
stanga=v[i];
}
}
while(stanga<=dreapta)
{
mijl=(stanga+dreapta)/2;
temp=0;
trans=0;
for(int j=1;j<N+1;++j)
{
if(temp+v[j]<=mijl)
{
temp=temp+v[j];
}
else
{
trans=trans+1;
temp=v[j];
}
}
trans=trans+1;
if(trans<=K)
{
dreapta=mijl-1;
ok=mijl;
}
else
{
stanga=mijl+1;
}
}
write<<ok;
}