Cod sursa(job #1375789)

Utilizator preda.andreiPreda Andrei preda.andrei Data 5 martie 2015 14:28:40
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#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;
}