Mai intai trebuie sa te autentifici.

Cod sursa(job #2072045)

Utilizator rares1012Rares Cautis rares1012 Data 21 noiembrie 2017 12:40:50
Problema Transport Scor 80
Compilator c Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <stdio.h>
#include <stdlib.h>

int v[16000];

int n,k;

int check(int r){
    int i,s,c=1;
    for(i=0;i<n;i++)
    {
        s+=v[i];
        if(s+v[i+1]>r)
        {
            s=0;
            c++;
        }
    }
    if(c>k)
        return 0;
    return 1;
}

int main()
{
    int i,r,p;
    FILE*fi,*fo;
    fi=fopen("transport.in","r");
    fo=fopen("transport.out","w");
    fscanf(fi,"%d%d",&n,&k);
    for(i=0;i<n;i++)
    {
        fscanf(fi,"%d",&v[i]);
    }
    r=0;
    p=1<<30;
    while(p>0){
        if(check(r+p)==0)
            r+=p;
        p/=2;
    }
    fprintf(fo,"%d",r+1);
    fclose(fi);
    fclose(fo);
    return 0;
}