Cod sursa(job #1074311)

Utilizator cristibogdanPatrascu Cristian cristibogdan Data 7 ianuarie 2014 15:39:51
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>

using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int v[16001],Max,k,cap,s,dr,st,x,i,n,nr,sol;
int main()
{
f>>n>>k;
Max=0;
s=0;
for(i=1;i<=n;i++){
    f>>x;
    v[i]=x;
    if(x>Max)
        Max=x;
    s=s+x;}
    st=Max;
    dr=s;
    while(st<=dr){
         cap=(st+dr)/2;
         nr=1;
         s=0;
        for(i=1;i<=n;i++){
            if(s+v[i]<=cap)
            s=s+v[i];
            else{
                nr++;
                s=v[i];}}
        if(nr<=k){
            sol=cap;
            dr=cap-1;}
        else{
            st=cap+1;}}
    g<<sol;



    return 0;
}