이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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... |