Submission #340118

# Submission time Handle Problem Language Result Execution time Memory
340118 2020-12-27T00:02:15 Z MilosMilutinovic medians (balkan11_medians) C++14
100 / 100
38 ms 2540 KB
#include <bits/stdc++.h>
using namespace std;
const int N=100050;
int n,a[N],ans[N],mn,mx;
bool was[2*N];
int down(){
    while(was[mx])--mx;
    was[mx]=1;
    return mx;
}
int up(){
    while(was[mn])++mn;
    was[mn]=1;
    return mn;
}
int main(){
    scanf("%i",&n);
    for(int i=1;i<=n;i++)scanf("%i",&a[i]);
    ans[1]=a[1];
    was[a[1]]=1;
    mn=0,mx=2*n;
    was[0]=1,was[2*n]=1;
    for(int i=2;i<=n;i++){
        if(a[i]==a[i-1]){
            ans[2*i-2]=down();
            ans[2*i-1]=up();
        }else{
            if(a[i]>a[i-1]){
                if(was[a[i]]){
                    ans[2*i-2]=down();
                    ans[2*i-1]=down();
                }else{
                    ans[2*i-2]=a[i];
                    was[a[i]]=1;
                    ans[2*i-1]=down();
                }
            }else{
                if(was[a[i]]){
                    ans[2*i-2]=up();
                    ans[2*i-1]=up();
                }else{
                    ans[2*i-2]=a[i];
                    was[a[i]]=1;
                    ans[2*i-1]=up();
                }
            }
        }
    }
    for(int i=1;i<=2*n-1;i++)printf("%i ",ans[i]);
    return 0;
}

Compilation message

medians.cpp: In function 'int main()':
medians.cpp:17:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   17 |     scanf("%i",&n);
      |     ~~~~~^~~~~~~~~
medians.cpp:18:31: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   18 |     for(int i=1;i<=n;i++)scanf("%i",&a[i]);
      |                          ~~~~~^~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 0 ms 364 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Correct 1 ms 364 KB Output is correct
5 Correct 1 ms 364 KB Output is correct
6 Correct 1 ms 364 KB Output is correct
7 Correct 1 ms 364 KB Output is correct
8 Correct 1 ms 364 KB Output is correct
9 Correct 1 ms 364 KB Output is correct
10 Correct 1 ms 364 KB Output is correct
11 Correct 1 ms 364 KB Output is correct
12 Correct 1 ms 364 KB Output is correct
13 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 2 ms 364 KB Output is correct
3 Correct 3 ms 492 KB Output is correct
4 Correct 6 ms 748 KB Output is correct
5 Correct 17 ms 1132 KB Output is correct
6 Correct 24 ms 1900 KB Output is correct
7 Correct 38 ms 2540 KB Output is correct