Cod sursa(job #2999226)

Utilizator edge1124Sindelaru Stefan edge1124 Data 10 martie 2023 17:50:21
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <iostream>
#include <fstream>
#include <cmath>

using namespace std;
int v[16005];
int n;
ifstream fin("transport.in");
ofstream fout("transport.out");

 int test(int c, int k){
    int sum = 0;
    for(int i = 1; i <= n; i ++){
        sum+=v[i];
        if(sum>c){
            sum=v[i];
            k--;
        }
    }
    return k>=1;
 }

 int cautbin(int st, int dr, int k){
    int med;
    int ans;
    while(st<=dr){
    med = (st+dr)/2;
    fout<<st<<" "<<dr<<endl<<med<<endl;
    if(test(med, k)){
        dr=med-1;
        ans=med;
        fout<<1<<endl;
    }else{

        st=med+1;
        fout<<0<<endl;

    }

 }
    return ans;
 }

int main(){
    int k,  maxnr=-1;
    fin>>n>>k;
    for(int i = 1; i <= n; i++){

        fin>>v[i];
        if(v[i]>maxnr){
            maxnr=v[i];
        }


    }
    int st=maxnr, dr=256000000;
    fout<<cautbin(st, dr, k);
}