Codeforces Round #410 (Div. 2), problem: (E) Mike and code of a permutation Solution In C/C++

#pragma warning(disable:4996)

#include <stdio.h>
#include <iostream>
#include <iomanip>
#include <vector>
#include <algorithm>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <cmath>
#include <map>
#include <set>
#include <queue>
#include <complex>
#include <iterator>
#include <random>
#include <time.h>
#include <tuple>
#include <functional>
#include <list>
#include <limits.h>
#define mp make_pair
#define ni(x) scanf(“%d”, &(x))
#define nii(x,y) scanf(“%d%d”,&(x),&(y))
#define mul(x,y) ((ll)(x)*(y)%mod)
#define mtp make_tuple
#define F(i,n) for(int i = 0; i < (n); i++)
#define FF(i,n) for(int i = 1; i <= (n); i++)
#define FE(i,n) for(int i = 0; i <= (n); i++)

using namespace std;
typedef pair<int, int> pii;
typedef long long ll;
const int mod = 1000000007;
const int inf = 2012345678;
const ll infl = 9012345678901234567;
const double pi = 3.1415926535897932384626433832795;
//—————————————————————————-//

const int N = 500010;
set<pii> tr[N];
int a[N], chk[N], res[N], clk, b[N];

void upd(pii x, int i, int n) {
while (i <= n) {
tr[i].insert(x);
i += i&(-i);
}
}
int n;
void dfs(int u) {
chk[u] = 1;
if (a[u] != inf) if(!chk[a[u]])dfs(a[u]);

int x = b[u];
x–;
if (b[u] == -1) x = n;
while (x) {
while (1) {
auto it = tr[x].lower_bound(pii(u, 0));
if (it != tr[x].end()) {
int v = it->second;
tr[x].erase(it);
if(!chk[v])dfs(v);
}
else break;
}
x -= x&(-x);
}

res[u] = clk++;
}

int main() {
#ifndef __GNUG__
freopen(“input.txt”, “r”, stdin);
#endif
ni(n);
FF(i, n)ni(a[i]);
FF(i, n)b[i] = -1;
FF(i, n) {
if (a[i] == -1) a[i] = inf;
else b[a[i]] = i;
upd(pii(a[i], i), i, n);
}
FF(i, n)if (!chk[i])dfs(i);
FF(i, n)printf(“%d “, n – res[i]); puts(“”);
return 0;
}

Advertisement

spot_img

Live-Action Can You Kiss...

Fans of romantic manga adaptations have an exciting new...

7 Reasons This Viral...

📢 As an Amazon Associate, I earn from qualifying...

Technology Innovation Institute Completes...

In a historic milestone for Middle Eastern space exploration,...

We Tested Viral Kitchen...

After putting the Viral Kitchen Gadgets through a proper...

L&T wins ₹10,000-15,000 crore...

Indian infrastructure and engineering conglomerate Larsen & Toubro (L&T)...

If a chatbot prompt...

When news recently surfaced about an alleged breach of...

Live-Action Can You Kiss Me First? Series’ Teaser Reveals Theme Song

Fans of romantic manga adaptations have an exciting new television premiere to look forward to, as the upcoming live-action series based on Yamayade's romance...

7 Reasons This Viral Kitchen Gadgets Is Worth Every Single Penny

📢 As an Amazon Associate, I earn from qualifying purchases.If you had told me six months ago that a single purchase would change how...

Technology Innovation Institute Completes Asteroid-Landing Probe for Landmark Emirates Mission to the Asteroid Belt

In a historic milestone for Middle Eastern space exploration, the Technology Innovation Institute (TII) has officially completed its state-of-the-art asteroid-landing probe. Designed and constructed...

We Tested Viral Kitchen Gadgets Here Is What You Must Know

After putting the Viral Kitchen Gadgets through a proper 30-day real-world test, I can tell you exactly what works, what does not, and who...

L&T wins ₹10,000-15,000 crore power transmission orders in India, Middle East

Indian infrastructure and engineering conglomerate Larsen & Toubro (L&T) has achieved another major milestone, securing multiple mega orders within its Power Transmission & Distribution...

If a chatbot prompt like ‘find Australian medicine statistics’ results in a website breach, the responsibility does not lie with a piece of code

When news recently surfaced about an alleged breach of Australia’s Medicare computer systems triggered by an automated artificial intelligence tool, public alarm escalated quickly....

We Tested Viral Kitchen Gadgets Here Is What You Must Know

There comes a point when you realise that tolerating a frustrating situation is costing you more than just fixing it properly. That was the...

NBA Trade Rumors: Potential RFA Targets, Fallout for Jalen Duren, & the Big Board

The NBA landscape is constantly shifting, and recent contract updates regarding Detroit Pistons center Jalen Duren have created significant ripples across the league’s transactional...

The Ultimate Viral Kitchen Gadgets Guide You Didnt Know You Needed

If you had told me six months ago that a single purchase would change how I approach my daily routine, I would not have...