Cod sursa(job #1672206)

Utilizator rebecca0312Andrei Rebecca rebecca0312 Data 2 aprilie 2016 14:23:27
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<iostream>
#include<stdio.h>
int v[16005];
using namespace std;
int main(){
    FILE *fin=fopen("transport.in","r");
    FILE *fout=fopen("transport.out","w");
    int n,k,mx=0,l1,l2,m,nrtransp,s,i,ind,maxx=-1;
    fscanf(fin, "%d%d", &n, &k);
    for(i=1;i<=n;i++){
        fscanf(fin, "%d", &v[i]);
        mx+=v[i];
        if(v[i]>maxx)
            maxx=v[i];
    }
    l1=maxx;
    l2=mx;
    while(l1<=l2){
        m=(l1+l2)/2;
        nrtransp=1;
        s=0;
        ind=1;
        while(ind<=n){
            s+=v[ind];
            if(s>m){
                nrtransp++;
                s=v[ind];
            }
            ind++;
        }
        if(nrtransp>k)
            l1=m+1;
        else
            l2=m-1;
    }
    fprintf(fout, "%d", l1);
    fclose(fin);
    fclose(fout);
    return 0;
}