Cod sursa(job #1510106)

Utilizator RaduXD1Nicolae Radu RaduXD1 Data 24 octombrie 2015 16:19:15
Problema Transport Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<iostream>
#include<fstream>
#include<math.h>
#include<algorithm>

using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n,m,j,i,v[10000],t,s,st,dr,ok;
int main(){
    fin>>n>>m;
    for(i=1;i<=n;i++)
    {
        fin>>v[i];
    }
    st=1;
    dr=m*v[1];
    while(st<=dr) {
        t=(st+dr)/2;
        ok=0;
        s=0;
        for(i=1;i<=n;i++)
            if(s+v[i]<=t)
            {
                s=s+v[i];
            }
            else
            {
                ok++;
                s=v[i];
            }
        ok++;
        if(ok>m)
            st=t+1;
        else
            dr=t-1;
    }
    fout<<st;
    fin.close();
    fout.close();
    return 0;
}