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<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... |