Pagini recente » Cod sursa (job #3229806) | Cod sursa (job #145608) | Cod sursa (job #1084555) | Cod sursa (job #2166621) | Cod sursa (job #411560)
Cod sursa(job #411560)
#include<cstdio>
#include<fstream>
#define MAX 16005
using namespace std;
int n,k,v[MAX];
int nrt(int x)
{
int i,nr=0,s=0;
for(i=1;i<=n;i++)
{
s+=v[i];
if(s+v[i+1]>x)
s=0,nr++;
}
return nr+1;
}
void cauta(int i,int j)
{
if(i!=j);
{
int mij=(i+j)/2,nr=nrt(mij);
if(nr<k)
cauta(i,mij-1);
else if(nr>k)
cauta(mij+1,j);
else
{
//cauta(i,mij-1);
mij--;
while(nrt(mij)==k)
mij--;
mij++;
printf("%d",mij);
}
}
}
int main()
{
int i,max,suma=0;
ifstream fin("transport.in");
freopen("transport.out","w",stdout);
fin>>n>>k;
for(i=1;i<=n;i++)
{
fin>>v[i];
suma+=v[i];
if(v[i]>max)
max=v[i];
}
cauta(max,suma);
return 0;
}