Cod sursa(job #3294995)

Utilizator MXelAMocanu Alexandru-Matei MXelA Data 1 mai 2025 11:02:56
Problema Transport Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin ("transport.in");
ofstream fout ("transport.out");

int n,k;
int v[16005];

int transporturi(int C)
{
    int x=0,j,t=0;
    for(j=1;j<=n;j++){
        x+=v[j];
        if(x>C){
            t++;
            x=v[j];
        }
    }
    t++;
    return t;
}

int main()
{
    fin>>n>>k;
    int st=-1,dr=0,m,trans,sol,i;
    for(i=1; i<=n; i++)
    {
        fin>>v[i];
        dr+=v[i];
        st=max(st,v[i]);
        dr=min(dr,16000);
    }
    while(st<=dr){
        m=(st+dr)/2;
        trans=transporturi(m);
        if(trans>k){
            st=m+1;
        }
        else{
            sol=m;
            dr=m-1;
        }
    }
    fout<<sol;
    return 0;
}