Cod sursa(job #3229177)

Utilizator _cezara._14cezara dobrescu _cezara._14 Data 14 mai 2024 11:03:26
Problema Transport Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int v[1001];
int N, K;
bool verif(int mij){
    int nr_trans=1; int sum=v[1];

    for(int i=2; i<=N; i++){
        if(sum+v[i]>mij)
        {
            nr_trans++;
            sum=v[i];

        }
        else sum=sum+v[i];


    }

    if(nr_trans>K)
        return 0;
    else
        return 1;

}

int main()
{
    int maxim=0;
    fin>>N>>K;
    for(int i=1; i<=N; i++){
        fin>>v[i];
    }
    int vol_min=0, vol_max=0;
    for(int i=1; i<=N; i++){
        vol_max=vol_max+i;
        if(v[i]>maxim)
            maxim=v[i];
    }
    vol_min=maxim;

    int st=vol_min;
    int dr=vol_max;
    int aux=0;
    while(st<=dr)
    {

        int mij=(st+dr)/2;
        if(verif(mij)==1)
        {
            aux=mij;
            dr=mij-1;
        }
        else{
            st=mij+1;
        }

    }
    fout<<aux;

        return 0;
}