1506E - Restoring the Permutation - CodeForces Solution


constructive algorithms implementation *1500

Please click on ads to support us..

Python Code:

from collections import deque 
for _ in range(int(input())): 
    n = int(input()) 
    a = [int(i) for i in input().split()] 
    Min, Max, t1, t2 = [], [], deque(),  deque() 
    e= 0
    for i in range(n) : 
        if e != a[i] : 
            Min.append(a[i]) 
            Max.append(a[i]) 
            for k in range(e+1, a[i]) : 
                t1.append(k) 
                t2.append(k) 
            e = a[i] 
                    else : 
            Min.append(t1.popleft()) 
            Max.append(t2.pop()) 
                print(*Min)
    print(*Max)

C++ Code:

#include<bits/stdc++.h>
using namespace std;
int t, n, q;
vector<int> maxp, minp;
set<int> minheap, maxheap;
int main(){
	cin>>t;
	while (t){
		t--;
		cin>>n;
		maxp.clear();minp.clear();
		int now=0;
		for (int i=0; i<n; i++){
			cin>>q;
			if (q!=now){
				maxp.push_back(q);
				minp.push_back(q);
				for (int j=now+1; j<q; j++){
					maxheap.insert(j);
					minheap.insert(j);
				}
				now=q;
			}else{
				int x= *maxheap.rbegin();
				maxp.push_back(x);
				maxheap.erase(x);
				x= *minheap.begin();
				minp.push_back(x);
				minheap.erase(x);
			}
		}
		for (int i=0; i<n; i++) cout<<minp[i]<<" ";
		cout<<endl;
		for (int i=0; i<n; i++) cout<<maxp[i]<<" ";
		cout<<endl;
	}
}


Comments

Submit
0 Comments
More Questions

1574A - Regular Bracket Sequences
1574B - Combinatorics Homework
1567A - Domino Disaster
1593A - Elections
1607A - Linear Keyboard
EQUALCOIN Equal Coins
XOREQN Xor Equation
MAKEPAL Weird Palindrome Making
HILLSEQ Hill Sequence
MAXBRIDGE Maximise the bridges
WLDRPL Wildcard Replacement
1221. Split a String in Balanced Strings
1002. Find Common Characters
1602A - Two Subsequences
1555A - PizzaForces
1607B - Odd Grasshopper
1084A - The Fair Nut and Elevator
1440B - Sum of Medians
1032A - Kitchen Utensils
1501B - Napoleon Cake
1584B - Coloring Rectangles
1562B - Scenes From a Memory
1521A - Nastia and Nearly Good Numbers
208. Implement Trie
1605B - Reverse Sort
1607C - Minimum Extraction
1604B - XOR Specia-LIS-t
1606B - Update Files
1598B - Groups
1602B - Divine Array