Cod sursa(job #2155992)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 8 martie 2018 12:51:38
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <cstdio>
#include <iostream>

using namespace std;
int v[16001],k,n;
int verif (int x){
    int s,tp,i;
    // x e capacitatea aleasa acum
    s=0;
    tp=1;
    for (i=1;i<=n;i++){
        if (s+v[i]<=x) // pot sa o incarc
            s+=v[i];
        else {
            // trb sa o includ in alt transp
            s=v[i];
            tp++;
        }
    }
    return tp<=k;
}
int main()
{
    FILE *fin=fopen ("transport.in","r");
    FILE *fout=fopen ("transport.out","w");
    int i,st,dr,mid;
    fscanf (fin,"%d%d",&n,&k);
    st=1;
    dr=0;
    for (i=1;i<=n;i++){
        fscanf (fin,"%d",&v[i]);
        st=max(st,v[i]);
        dr+=v[i];
    }
   // printf ("%d %d",st,dr);
    while (st<=dr){
        mid=(st+dr)/2;
        if (verif (mid))
            dr=mid-1;
        else st=mid+1;
    }
    fprintf (fout,"%d",st);
    return 0;
}