Cod sursa(job #2182195)

Utilizator Ioan_AnghelIoan Anghel Ioan_Anghel Data 22 martie 2018 11:00:23
Problema Transport Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>

using namespace std;

ifstream fin("transport.in");
ofstream fout("transport.out");

int v[16000];

const int L = 27;

int n, k;

bool sepoate(int c)
{
    int nr = 0, cc = 0;
    for(int i = 0; i < n; i++){
        if(v[i] > cc){
            nr++;
            cc = c;
        }
        if(v[i] > c){
            return false;
        }
        if(nr > k){
            return false;
        }
        cc = v[i];
    }
    return true;
}

int main()
{
    fin >> n >> k;
    for(int i = 0; i < n; i++){
        fin >> v[i];
    }
    int r = 0, pas = 1 << L;
    while(pas != 0){
        if(!sepoate(r + pas)){
            r += pas;
        }
        pas /= 2;
    }
    fout << r + 1;


    return 0;
}