Pagini recente » Cod sursa (job #1209250) | Cod sursa (job #3253216) | Cod sursa (job #329878) | Cod sursa (job #1201351) | Cod sursa (job #572516)
Cod sursa(job #572516)
#include<iostream>
#include<fstream>
#include<stdio.h>
using namespace std;
int n,k,salt[20000];
int caut()
{
int suma,maxim=-20000,capac=20000,varf,l,i,s=0;
for(i=1;i<=n;i++)
{
if(salt[i]>maxim)
maxim=salt[i];
s=s+salt[i];
}
int cs=maxim, cd= s;
int gata=1;
while (cs<=cd)
{
l= (cs+cd)/2;
varf=0;
suma=0;
for(i=1;i<=k;i++)
{
suma=0;
do
{
varf++;
suma=suma+salt[varf];
}
while((suma<=l)&&(varf<=n));
varf--;
}
if (varf <n)
cs=l+1;
else
if(varf==n)
{
cd=l-1;
//if(l<capac)
// capac=l;
}
}
return l;
}
int main()
{
ifstream f("transport.in");
ofstream g("transport.out");
f>>n>>k;
int i;
for(i=1;i<=n;i++)
f>>salt[i];
g<<caut();
}