Cod sursa(job #3312657)

Utilizator antq_03antonia maria silaghi antq_03 Data 29 septembrie 2025 12:47:02
Problema Transport Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");

int se_poate(int c,int v[],int n) {
    int t=1;
    int suma=0;
    int i;
    for (i=1;i<=n;i++) {
        if (suma+v[i]<=c)
            suma=suma+v[i];
        else {
            t++;
            suma=v[i];
        }
    }
    return t;
}

int main()
{
    int n,k,i,v[100],mid;
    fin>> n >> k;
    int st=0;
    int dr=0;
    for (i=1;i<=n;i++) {
        fin>> v[i];
        if (v[i]>st)
            st=v[i];
        dr=dr+v[i];
    }
    /// facem o cautare binara
    while (st<dr) {
        mid=(st+dr)/2;
        if(se_poate(mid,v,n)<=k)
            dr=mid;
        else
            st=mid+1;
    }
    fout<< st;

    return 0;
}