Cod sursa(job #3315760)

Utilizator Belea_DariusBelea Mihai Darius Belea_Darius Data 15 octombrie 2025 21:47:52
Problema Transport Scor 0
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <stdio.h>
#include <stdlib.h>

int stiva[16000];

int verif(int n, int cap, int k){
    int ind, cnt, sum;
    cnt = sum = 0;
    for(ind = 0; ind < n; ind ++){
        if(sum + stiva[ind] > cap){
            cnt ++;
            sum = 0;
        }
        sum += stiva[ind];
    }
    cnt ++;
    if(cnt <= k){
        return 1;
    }else{
        return 0;
    }
}

int caut_bin(int n, int k){
    int st, dr, mij, rez;
    st = 1;
    dr = (1 << 31) - 1;
    while(st <= dr){
        mij = (st + dr) / 2;

        if(verif(n, mij, k)){
            rez = mij;
            dr = mij - 1;
        }else{
            st = mij + 1;
        }
    }
}

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

    int n, k, i;

    fscanf(fin, "%d%d", &n, &k);

    for(i = 0; i < n; i ++){
        fscanf(fin, "%d", &stiva[i]);
    }

    fprintf(fout, "%d\n", caut_bin(n, k));
    return 0;
}