Submission #1326225

#TimeUsernameProblemLanguageResultExecution timeMemory
1326225Jawad_Akbar_JJNew Year Train (IZhO12_train)C++20
100 / 100
820 ms13316 KiB
#include <iostream>

using namespace std;
int lst[1<<20], out2[1<<20];

int main(){
	int n, m;
	cin>>n>>m;

	for (int i=1, a;i<=n;i++){
		cin>>a;

		int l = 0, r = i;
		while (l + 1 < r){
			int mid = (l + r) / 2;
			if (lst[mid] < a)
				r = mid;
			else
				l = mid;
		}
		lst[r] = a;
		out2[a] = r;

		cout<<r<<' ';
	}
	cout<<'\n';
	for (int i=1;i<=n;i++)
		cout<<out2[i]<<' ';
	cout<<'\n';

}
#Verdict Execution timeMemoryGrader output
Fetching results...