Cod sursa(job #3030354)

Utilizator AngellAnghel Stefan Angell Data 17 martie 2023 17:09:48
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include<iostream>
#include<fstream>
using namespace std;
int v[20000];
bool incape(int dimensiune,int n,int k){
    int s=0;
    int camioane=0;
    for(int i=1;i<=n;i++){
        s=s+v[i];
        if(s>dimensiune){
            camioane++;
            s=v[i];
        }
    }
    camioane++;
    return camioane<=k;

}

int cautarebinara(int st, int dr, int k,int n){
    int ans=0;
    while(st<=dr){
        int med=(st+dr)/2;
        if(incape(med,n,k)){
            dr=med-1;
            ans=med;
        }
        else{
            st=med+1;
        }
    }
    return ans;
}

ifstream fin("transport.in");
ofstream fout("transport.out");
int main(){
    int n,k;
    fin>>n>>k;
    int maxim=0;
    int s=0;
    for(int i=1;i<=n;i++){
        fin>>v[i];
        if(maxim<=v[i]){
            maxim=v[i];
        }
        s=s+v[i];
    }
    fout<<cautarebinara(maxim,s,k,n);
}