Pagini recente » Cod sursa (job #3228296) | Cod sursa (job #3292144) | Cod sursa (job #3212497) | Cod sursa (job #3123643) | Cod sursa (job #1375789)
#include <iostream>
#include <stdio.h>
using namespace std;
int v[16001];
int main()
{
FILE* fin=fopen("transport.in", "r");
FILE* fout=fopen("transport.out", "w");
int n, k, s=0, s2, nr=100000, c=0, ld, ls, sol;
fscanf(fin, "%d%d", &n, &k);
for(int i=1; i<=n; i++){
fscanf(fin, "%d", &v[i]);
s=s+v[i];
if(v[i]>c)
c=v[i];
}
sol=ls=c;
ld=s;
while(ls<ld){
fprintf(fout, "%d ", sol);
nr=0;
s2=0;
for(int i=1; i<=n; i++){
s2=s2+v[i];
if(s2>sol){
nr++;
s2=v[i];
}
}
nr++;
fprintf(fout, "%d\n", nr);
if(nr==k)
ld=ls=sol;
else{
if(nr<k)
ld=sol;
else
ls=sol;
sol=(ls+ld)/2;
}
}
fprintf(fout, "%d", sol);
return 0;
}