Cod sursa(job #3356735)

Utilizator Miha.AlexPapuc Mihaela Alexandra Miha.Alex Data 3 iunie 2026 19:26:52
Problema Transport Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <iostream>
#include <fstream>
using namespace std;

int n,c,k,v[16000];
bool Camion(int c)
{
    int nr=1,s=0;
    for(int i=1;i<=n;i++)
        if(s+v[i]<=c)
            s=s+v[i];
        else{
            nr++;
            s=v[i];
        }
    if(nr<=k)
        return true;
    return false;
}
int Cautare(int st, int dr)
{
    int mij, last=dr;
    while(st<=dr){
        mij=(st+dr)/2;
        if(Camion(mij)==true){
            last=mij;
            dr=mij-1;
        }
        else st=mij+1;
    }
    return last;
}
int main()
{
    ifstream f("transport.in");
    ofstream g("transport.out");
    f>>n>>k;
    for(int i=1;i<=n;i++)
        f>>v[i];
    int max=v[1], s=v[1];
    for(int i=2;i<=n;i++){
        s=s+v[i];
        if(v[i]>max)
            max=v[i];
    }
    f.close();
    g<<Cautare(max,s);
    g.close();
    return 0;
}