Cod sursa(job #515570)

Utilizator S7012MYPetru Trimbitas S7012MY Data 21 decembrie 2010 18:49:46
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <iostream>
#include <fstream>
#define DN 16001
using namespace std;

int n,v[DN],k;

int main()
{
    ifstream f("transport.in");
    ofstream g("transport.out");
    f>>n>>k;
    int lim=0,ls=0;
    for (int i=1; i<=n; ++i) {
        f>>v[i];
        if(v[i]>ls) ls=v[i];
        lim+=v[i];
    }
    int ld=lim,m,nrt,sum,sol=DN;
    for(m=(ls+ld)>>1;ls<=ld;m=(ls+ld)>>1) {
        nrt=0;
        for(int i=1; i<=n;) {
            for(sum=0;sum+v[i]<=m && i<=n; sum+=v[i], ++i);
            ++nrt;
        }
        if(nrt>k) ls=m+1;
        else {
            sol=m;
            ld=m-1;
        }
    }
    g<<sol;
    return 0;
}