Cod sursa(job #1885191)

Utilizator caiurRughinis Caius caiur Data 19 februarie 2017 18:36:14
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    ifstream f("transport.in");
    ofstream g("transport.out");
    int n,k,i,v[16001],cs=0,cd=0,mij,rez,suma=0,contor=0;
    f>>n>>k;
    for(i=1;i<=n;i++){
        f>>v[i];
        if(cs<v[i])cs=v[i];
        cd+=v[i];
    }

    while(cs!=cd){
        mij=(cs+cd)/2;
        contor=0;
        cout<<cs<<' '<<cd<<' '<<mij<<'\n';
        for(i=1;i<=n && contor<=k;i++){

            while(suma+v[i]<=mij){
                suma+=v[i];
                i++;
            }
            i--;
            contor++;
            cout<<contor<<": "<<suma<<'\n';
            suma=0;
        }

        if(contor<=k){
            rez=mij;
            cd=mij;
        }
        else cs=mij+1;
    }


    g<<rez<<'\n';

    f.close();
    g.close();
    return 0;
}