Cod sursa(job #1011487)

Utilizator PsychoAlexAlexandru Buicescu PsychoAlex Data 16 octombrie 2013 21:34:10
Problema Statistici de ordine Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.72 kb
#include <iostream>
#include <fstream>
#include <stdlib.h>

std::ifstream fin("sdo.in");
std::ofstream fout("sdo.out");

int n, p, position, maxim;///, a[3000001];

char b[3000001];

//void change(int &a, int &b)
//{
//    int aux = a;
//    a = b;
//    b = aux;
//}
//
//void poz(int in, int sf, int &k)
//{
//    int random = rand() % (sf - in + 1) + in;
////    std::cout<<in<<' '<<sf<<' '<<random<<'\n';
//    change(a[random], a[sf]); ///mut pivotul la sfarsit
//
//    for(int i = in; i < sf; i++)
//    {
//        if(a[i] <= a[sf]) ///a[sf] - pivot
//        {
//            change(a[i], a[in]);
//            in++;
//        }
//    }
//    change(a[in], a[sf]); ///mut pivotul la locul lui
//    k = in;
//}
//
//void QSort(int in, int sf)
//{
//    int k;
//    if(in < sf)
//    {
//        poz(in, sf, k);
////        if(k > p)
//        {
//            QSort(k+1, sf);
//        }
////        else
////            if(k < p)
//            {
//                QSort(in, k-1);
//            }
////            else
////            {
////                position = k;
////                return;
////            }
//    }
//}

void citire()
{
    fin>>n>>p;
    int x;
    for(int i = 0; i < n; i++)
    {
        fin>>x;
        b[x] = '1';
        if(maxim < x)
        {
            maxim = x;
        }
//        fin>>a[i];
    }
}

void rezolvare()
{
//    QSort(0, n-1);
    int nr = 0, i = 0;
//    for(int i = 0; i < n; i++)
    while(nr < p)
    {
        if(b[i] == '1')
        {
//            std::cout<<i<<' ';
            nr++;
        }
        i++;
    }
    fout<<i-1<<'\n';
}

int main()
{
    citire();
    rezolvare();
    return 0;
}