Cod sursa(job #1030110)

Utilizator Alex.PAlexandru Pacurar Alex.P Data 15 noiembrie 2013 15:49:31
Problema Transport Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <stdio.h>
#include <stdlib.h>

int v[16000];

int main()
{
    FILE *fin, *fout;
    int n,k,i,x,z,d,s,l;
    fin=fopen("transport.in","r");
    fout=fopen("transport.out","w");
    fscanf(fin,"%d%d",&n,&k);
    for(i=0;i<n;i++)
    {
        fscanf(fin,"%d",&v[i]);
        s=s+v[i];
    }
    z=s;
    x=0;
    while(z-x>2)
    {
        l=(z-x)/2+x;
        d=0;
        i=0;
        s=0;
        while(i<n && d<=k)
        {
            s=s+v[i];
            i++;
            if(v[i]>l)
                d=k+1;
            if(s>l)
            {
                i--;
                s=0;
                d++;
            }
        }
        if(d<k)
            z=l;
        else
            x=l;
    }
    fprintf(fout,"%d",z);
    fclose(fin);
    fclose(fout);
    return 0;
}