This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <utility>
using namespace std;
#define in cin
#define out cout
#define _abs(a) ((a)>0?(a):(-(a)))
#define _min(a,b) ((a)>(b)?(b):(a))
#define _max(a,b) ((a)<(b)?(b):(a))
#define isin(a,b,c) ((a)<=(c)&&(c)<=(b))
#define REP(i,e) for(int i=0; i<e; i++)
#define REPE(i,s,e) for(int i=s; i<=e; i++)
#define REPR(i,s,e) for(int i=e; i>=s; i--)
int main()
{
int n;
in >> n;
vector<int> v(n);
REP(i,n) in >> v[i];
int m; in >> m;
if(m <= n)
{
out << v[m-1] << endl;
return 0;
}
//
vector<int> vv(n);
REP(i,n) vv[i] = v[i];
sort(vv.begin(), vv.end());
//
int cnt = 1;
REP(i,n-1) {
if(vv[i] != vv[i+1]) cnt++;
}
//
int tt = lower_bound(vv.begin(), vv.end(), cnt)-vv.begin();
if(tt != n)
{
tt = vv[tt];
m -= (n+1);
if(tt-cnt > m)
out << cnt + m;
else
out << tt;
}
else
{
out << cnt+(m-n)-1 << endl;
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |