Cod sursa(job #3340527)

Utilizator nzkhRemus Rizea nzkh Data 14 februarie 2026 20:12:03
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<bits/stdc++.h>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n,k;
vector<int> v;
bool check(int x){
    int sum=0;
    int transport=1;
    for(int i=0;i<n;i++){
        if(v[i]>x) return false;
        if(sum+v[i]>x){
            transport++;
            sum=v[i];
        }
        else sum+=v[i];
    }
    return sum<=k;
}
int main(){
    fin>>n>>k;
    v.resize(n);
    int st=,dr=0;
    for(int i=0;i<n;i++){ 
        fin>>v[i];
        st=max(st,v[i]);
        dr+=v[i];
    
    }
    int sol=dr;
    while(st<=dr){
        if(check((st+dr)/2)){
            sol=(st+dr)/2;
            dr=(st+dr)/2-1;
        }
        else st=(st+dr)/2+1;
    }
    fout<<sol<<"/n";



    return 0;
}