Cod sursa(job #2976563)

Utilizator Vlad10Vlad Negut Vlad10 Data 9 februarie 2023 15:36:28
Problema Transport Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int v[16001];
int calculdezile(int n){
    int i=1,s=0,j=1,day=0;
    while(i<=n){
        s=0;
        j=i;
        while(s<=n)
        {
            s+=v[j];
            j++;
        }
        if(i==j-1)
            return 0;
        i=j-1;
        day++;
    }
    return day;
}
int main()
{
    int n,k,i,st,dr,m,x,vmax=-1,sum=0,rez;
    fin>>n>>k;
    for(i=1;i<=n;i++){
        fin>>x;
        v[i]=x;
        sum+=x;
        if(x>vmax)
            vmax=x;
    }
    st=vmax;
    dr=sum;
    while(st<=dr){
        m=(st+dr)/2;
        x=calculdezile(m);
        if(x>k){
            st=m+1;
        }else{
            dr=m-1;
            rez=m;
        }
    }
    fout<<rez;
    return 0;
}