Cod sursa(job #3337796)

Utilizator C_Str5734Straut Cristina C_Str5734 Data 30 ianuarie 2026 09:09:24
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n,k,i,sol;
vector<int> v(n+1, 0);
int transport(int c){
    int nr=n;
    int t=v[n-1];
    for(i=n-1;i>=0;i--){
        if(t+v[i]<=c){
            t+=v[i];
            nr--;
        }
        else t=v[i];
    }
    return nr;
   }
int main()
{
   fin>>n>>k;
   int s=0, mn=0;
   for(i=0;i<n;i++) {
    fin>>v[i];
    s+=v[i];
    if(v[i]>mn) mn=v[i];
   }
   int l=mn;
   int r=s;
   int mij=(l+r)/2;
   while(l<=r){
    mij=(l+r)/2;
    if(transport(mij)>k){
        l=mij+1;
    }
   else{
      if(transport(mij)==k) sol=mij;
        r=mij-1;
   }
   }
   fout<<sol;

    return 0;
}