이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<cstdio>
#include<algorithm>
#include<set>
int s[50001];
int b[5000000];
std::set<int> st;
int main()
{
int n,m,i,mx=-987654321;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&s[i]),b[i]=s[i],st.insert(s[i]),mx=std::max(mx,s[i]);
std::set<int>::iterator k=st.upper_bound(st.size()-1);
scanf("%d",&m);
/*for(i=1;i<=m;i++)
{
if(*k>mx)
{
if(i<=n) printf("%d",b[i]);
else printf("%d",st.size()+i-n-1);
}
else
{
if(i<=n) printf("%d",b[i]);
else if(i<=n+(*k-st.size()+1)) printf("%d",i-n-1+st.size());
else printf("%d",*k);
}
printf(" ");
}
printf("\n------------------------------\n");
for(i=1;i<=m;i++)
{
if(i<=n) printf("%d",b[i]);
else printf("%d",b[i]=st.size()),st.insert(b[i]);
printf(" ");
}*/
if(*k>mx)
{
if(m<=n) printf("%d",b[m]);
else printf("%d",st.size()+m-n-1);
}
else
{
if(m<=n) printf("%d",b[m]);
else if(m<=n+(*k-st.size()+1)) printf("%d",m-n-1+st.size());
else printf("%d",*k);
}
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... |