Cod sursa(job #2527546)

Utilizator JesseMcCreeVladimir Sontea JesseMcCree Data 20 ianuarie 2020 16:43:15
Problema Transport Scor 20
Compilator c-64 Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

int v[16001];
int k;
int n;

bool ok(int nrC)
{
    int op=0, i, sr=nrC;
    for(i=1; i<=n; i++)
    {
        if(nrC<v[i])
        {
            return false;
        }
        else
        {
            if(sr>=v[i])
            {
                sr=sr-v[i];
            }
            else
            {
                op++;
                sr=nrC;
                sr=sr-v[i];
            }
        }
    }
    if(op<=k)
    {
        return true;
    }
    else
        return false;
}

int main()
{
    FILE *fin, *fout;
    fin=fopen("transport.in", "r");
    fout=fopen("transport.out", "w");

    int i;
    fscanf(fin, "%d%d", &n, &k);
    for(i=1; i<=n; i++)
    {
        fscanf(fin, "%d", &v[i]);
    }


    int st=1, dr=16000, mij, elem=0;
    while(st<=dr)
    {
        mij=(st+dr)/2;
        if(ok(mij)==true)
        {
            elem=mij;
            dr=mij-1;
        }
        else
        {
            st=mij+1;
        }
    }
    fprintf(fout, "%d", st);
    fclose(fin);
    fclose(fout);
    return 0;
}