Cod sursa(job #3171476)

Utilizator rosaaaRosa Elen S. rosaaa Data 18 noiembrie 2023 22:29:58
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int v[16005], n;
int fa(int x)
{
    int i, suma= 0, cnt= 0;
    for(i= 1;i <= n;i++)
    {
        if(suma+ v[i] > x)cnt++, suma= v[i];//, cout <<i<<" ";
        else suma+= v[i];
    }
    cnt++;
    //cout <<"x= "<<x<<" si cnt= "<<cnt<<endl<<endl;
    return cnt;
}
int main()
{
    int i, k, maxi= -1, suma= 0, st, dr, mij, rez= -1;
    cin >> n>> k;
    for(i= 1;i <= n;i++)cin >> v[i], suma+= v[i], maxi= max(maxi, v[i]);
    st= maxi; dr= suma;
    while(st <= dr)
    {
        mij= (st+ dr)/ 2; /// capacitatea camionului
        int tran= fa(mij);
        if(tran== k)rez= mij;
        if(tran > k)st= mij+ 1;
        else dr= mij- 1;
    }
    if(rez > 0)cout << rez;
    else cout << st;

    return 0;
}