Cod sursa(job #2847198)

Utilizator Schweppesnick gurr Schweppes Data 10 februarie 2022 13:50:17
Problema Transport Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
const int VAL=15005;
int tr(int m, int n, int a[]){
    int s=0,cnt=1;
    for(int i=1;i<=n;i++){
        if(s+a[i]<=m)s+=a[i];
        else cnt++,s=a[i];
    }
    return cnt;

}
int main(){
    int n,mij,k,maxi(0),st,ans,dr,s(0),a[16500];
    fin >> n >> k;
    for(int i=1;i<=n;++i)fin>>a[i],maxi=max(maxi,a[i]),s+=a[i];
    for(int i=1;i<=n;i++){
        st=maxi,dr=s;
        while(st<=dr){
            mij=(st+dr)/2;
            if(tr(mij,n,a)<=k)ans=mij,dr=mij-1;
            else st=mij+1;
        }
    }
    fout << ans;
return 0;
}
// 3 4 4 3 3 2 3