Cod sursa(job #2182185)

Utilizator lvs1404Luca Stanescu lvs1404 Data 22 martie 2018 10:56:29
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>

using namespace std;

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

 int const L = 27;
int v[160001], 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] > cc )
        {
            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;
    fin.close();
    fout.close();
    return 0;
}