Cod sursa(job #2074427)

Utilizator ParketPatrick Josephs Parket Data 24 noiembrie 2017 16:44:28
Problema Transport Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <stdio.h>
#include <stdlib.h>
#define L 32
int n,k;
int v[16000];
int sepoate(int c){
    int cc=0,nr=0,i;
    for(i=0;i<n;i++){
        if(v[i]>cc){
            cc=c;
            nr++;
        }
        if(v[i]>cc)
            return 1;
        if(nr>k)
            return 1;
        cc-=v[i];
    }
    return 0;
}
int main()
{
    FILE *f1 = fopen("transport.in","r"), *f2 = fopen("transport.out","w");
    int i;
    int pas, r;
    r=0;
    pas=1<<L;
    fscanf(f1,"%d%d",&n,&k);
    for(i=0;i<n;i++)
        fscanf(f1,"%d",&v[i]);
    while(pas!=0){
        if(!sepoate(r+pas))
            r+=pas;
        pas=pas/2;
    }
    fprintf(f2,"%d",r++);
    return 0;
}