Pagini recente »
Monitorul de evaluare
|
Istoria paginii utilizator/cirlan.777
|
Cod sursă (job #154422)
Cod sursă (job
#154422)
#include <iostream>
#include <fstream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <string>
#include <cstring>
#include <cctype>
#include <set>
#include <queue>
#include <stack>
#include <list>
#include <map>
#include <vector>
#include <list>
#include <bitset>
#include <iomanip>
#define FASTIO ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
using namespace std;
ifstream fin("pointeri.in");
ofstream fout("pointeri.out");
struct {
int st, dr;
} v[200000];
int nr, prim, ultim;
void DFS(int x);
int main() {
int n, rad, i;
fin >> n >> rad;
for (i = 0; i < n; ++i)
fin >> v[i].st;
for (i = 0; i < n; ++i)
fin >> v[i].dr;
prim = ultim = -1;
DFS(rad);
fout << prim << '\n';
for (i = 0; i < n; ++i)
fout << v[i].st << ' ';
fout << '\n';
for (i = 0; i < n; ++i)
fout << v[i].dr << ' ';
return 0;
}
void DFS(int x) {
if (v[x].st != -1)
DFS(v[x].st);
int aux = v[x].dr;
if (prim == -1)
prim = x;
v[x].st = ultim;
v[ultim].dr = x;
v[x].dr = -1;
ultim = x;
if (aux != -1)
DFS(aux);
}