Cod sursa(job #3254104)

Utilizator Tudor_Iatagan2Iatagan Tudor Tudor_Iatagan2 Data 6 noiembrie 2024 09:26:42
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");

int v[16001];
int main()
{
    int n, k, i, s=0, maxi=-1, st, dr, mijl, nrtransp, sol;
    cin>>n>>k;
    for( i = 1; i <= n; i++ ){
        cin>>v[i];
        s+=v[i];
        if( v[i] > maxi )
            maxi=v[i];
    }
    st=maxi;
    dr=s;
    while( st <= dr ){
        mijl=(st+dr)/2;
        s=0;
        nrtransp=1;
        for( i = 1; i <= n; i++ ){
            if( s + v[i] <= mijl )
                s+=v[i];
            else{
                nrtransp++;
                s=v[i];
            }
        }
        if( nrtransp > k )
            st=mijl+1;
        else{
            sol=mijl;
            dr=mijl-1;
        }
    }
    cout<<sol;
    return 0;
}