Pagini recente » Cod sursa (job #1192831) | Cod sursa (job #1649931) | Cod sursa (job #2445590) | Cod sursa (job #812375) | Cod sursa (job #1949351)
#include<vector>
#include<algorithm>
#include<stdio.h>
using namespace std;
int n, m;
int a[10000];
int ordine(int x)
{
int number = 0;
int gasit = 0;
for (int i = 0; i < n; i++)
{
if (a[i] < x)
number++;
if (a[i] == x)
gasit++;
if (number > m)
return 1;
}
if (number <m && number+gasit>=m&&gasit>0)
return 0;
return -1;
}
int bin_s(int first, int last)
{
int middle = (first + last) / 2;
int mid = ordine(middle);
if (mid == 0)
return middle;
if (mid == -1)
{
return bin_s(middle + 1, last);
}
else
return bin_s(first, middle - 1);
}
int main()
{
freopen("sdo.in", "r", stdin);
freopen("sdo.out", "w", stdout);
scanf("%d %d",&n, &m);
for (int i = 0; i < n; i++)
{
int x;
scanf("%d", &a[i]);
}
printf("%d",bin_s(1, 3000000));
}