Cod sursa(job #3230873)

Utilizator tudorhTudor Horobeanu tudorh Data 23 mai 2024 09:56:33
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <bits/stdc++.h>

using namespace std;
int v[16001],drumuri,saltele;
bool check(int volum)
{
    int cnt=1,s=0;
    for(int i=1;i<=saltele;i++)
    {
        if(s+v[i]<=volum)
            s+=v[i];
        else
        {
            cnt++;
            s=v[i];
        }
    }
    return (cnt<=drumuri);
}
int cb()
{
    int st=1,dr=16000*16000,mid,rasp;
    while(st<=dr)
    {
        mid=(st+dr)/2;
        if(check(mid))
        {
            rasp=mid;
            dr=mid-1;
        }
        else st=mid+1;
    }
    return rasp;
}
int main()
{
    ifstream fin("transport.in");
    ofstream fout("transport.out");
    fin>>saltele>>drumuri;
    for(int i=1;i<=saltele;i++)
        fin>>v[i];
    fout<<cb();
    return 0;
}