Pagini recente »
Atașamentele paginii Clasament 2024-08-23-clasa-6-tema-3
|
Cod sursă (job #646325)
Cod sursă (job
#646325)
#include <bits/stdc++.h>
#include <fstream>
#define NMAX 200000
using namespace std;
ifstream fin("pointeri.in");
ofstream fout("pointeri.out");
int l[NMAX], r[NMAX];
int main()
{
int n, first;
stack <int> st;
fin >> n >> first;
for (int i = 0; i < n; ++i) fin >> l[i];
for (int i = 0; i < n; ++i) fin >> r[i];
int node = first, prev = -1, prim, tmp;
while (node != -1 || !st.empty()) {
if (node != -1) {
st.push(node);
node = l[node];
}
else {
node = st.top(), st.pop();
tmp = r[node];
if (prev != -1) r[prev] = node;
else prim = node;
l[node] = prev;
prev = node;
node = tmp;
}
}
r[prev] = -1;
fout << prim << '\n';
for (int i = 0; i < n; ++i) fout << l[i] << " ";
fout << '\n';
for (int i = 0; i < n; ++i) fout << r[i] << " ";
fin.close();
fout.close();
return 0;
}