Submission #331159

#TimeUsernameProblemLanguageResultExecution timeMemory
331159Sho10medians (balkan11_medians)C++14
15 / 100
101 ms12396 KiB
#include <bits/stdc++.h> //Andrei Alexandru a.k.a Sho10 #define ll long long #define double long double #pragma GCC optimize("O3") #pragma GCC optimize("Ofast") #define all(a) (a).begin(), (a).end() #define f first #define s second #define pb push_back #define mp make_pair #define pi pair #define rc(s) return cout<<s,0 #define endl '\n' #define mod 1000007 #define PI 3.14159265359 #define MAXN 100005 #define INF 1000000005 #define LINF 1000000000000000005ll #define CODE_START ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); using namespace std; int n,b[1000005],ans[2000005],l,r; map<int,int>viz; void mn(int pos){ while(viz[l]){ l++; } ans[pos]=l; viz[l]=1; } void mx(int pos){ while(viz[r]){ r--; } ans[pos]=r; viz[r]=1; } int32_t main(){ CODE_START cin>>n; for(int i=1;i<=n;i++) { cin>>b[i]; } ans[1]=b[1]; viz[b[1]]=1; l=1,r=2*n-1; for(int i=2;i<=n;i++) { if(b[i]==b[i-1]){ mn(2*i-2); mx(2*i-1); }else if(b[i]>b[i-1]){ if(viz[b[i]]==0){ ans[2*i-2]=b[i]; viz[b[i]]=1; mx(2*i-1); }else { mx(2*i-2); mn(2*i-1); } }else { if(viz[b[i]]==0){ ans[2*i-2]=b[i]; viz[b[i]]=1; mn(2*i-1); }else { mn(2*i-2); mn(2*i-1); } } } for(int i=1;i<=2*n-1;i++) { cout<<ans[i]<<' '; } cout<<endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...