Pagini recente » Cod sursa (job #876107) | Cod sursa (job #1949922) | Cod sursa (job #304143) | Cod sursa (job #937911) | Cod sursa (job #710281)
Cod sursa(job #710281)
#include<iostream>
#include<fstream>
using namespace std;
int v[16001],n,k;
int verif(int x)
{
int transp,j,i;
for(j=1,i=1;i<=k&&j<=n;i++)
{
transp=x;
while(transp>=v[j]&&j<=n)
{
transp-=v[j];
j++;
}
}
if(j==n+1)
return 1;
else return 0;
}
int main()
{
ifstream g("transport.in");
ofstream h("transport.out");
int min=0, max=16000,ult;
int poz=0,p=(1<<13);
g>>n>>k;
for(int i=1;i<=n;i++)
{
g>>v[i];
if(v[i]>min) min=v[i];
}
/*
while(min!=max)
{
poz=(min+max)/2;
if(verif(poz))
{
max=poz;
ult=poz;
}
else
min=poz+1;
}
if( verif(min))
ult = min;
*/
while(p)
{
if(!verif(poz+p))
poz+=p;
else
ult = poz + p;
p >>= 1;
}
h<<ult;
}