Cod sursa(job #3256031)

Utilizator stefan_praleaStefan Pralea stefan_pralea Data 12 noiembrie 2024 23:57:17
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>
using namespace std;
short int v[16000];

int main(){
    ifstream fin("transport.in");
    ofstream fout("transport.out");
    int i, n, k, maxv=0, sum=0, s, d, camion_candidat, nr_transporturi;

    fin >> n >> k;
    for(i=0;i<n;i++){
        fin >> v[i];
        sum+=v[i];
        if(v[i]>maxv)
            maxv = v[i];
    }

    s = maxv;
    d = sum;
    while(s<=d){
        camion_candidat = (s+d)/2;
        sum = 0;
        nr_transporturi = 1;
        for(i=0; i<n; i++){
            sum += v[i];
            if(sum>camion_candidat){
                sum=v[i];
                nr_transporturi++;
            }
        }

        if(nr_transporturi > k)
            s = camion_candidat+1;
        else
            d = camion_candidat-1;
    }
    fout << camion_candidat << endl;
}