Pagini recente » Cod sursa (job #1234215) | Cod sursa (job #1421952) | Cod sursa (job #710376) | Cod sursa (job #2156050) | Cod sursa (job #2945458)
//#include <iostream>
#include <fstream>
#include<vector>
using namespace std;
ifstream cin("schi.in");
ofstream cout("schi.out");
vector<int> st;
int n;
void update(int node, int from, int to, int& pos, int& val) {
if (pos >n)
return;
if (from == to) {
int aux = st[node];
st[node] = val;
val = aux;
pos++;
return;
}
int m = (from + to) / 2;
if (pos <= m) {
update(node * 2, from, m, pos, val);
}
if(pos>m) {
update(node * 2 + 1, m + 1, to, pos, val);
}
}
int query(int node, int from, int to, int ql, int qr) {
if (from == to) {
return st[node];
}
int m = (from + to) / 2;
if (ql<=m) {
return query(node * 2, from, m, ql, qr);
}
if (m + 1 <= qr) {
return query(node * 2 + 1, m + 1, to, ql, qr);
}
return 0;
}
vector<int> v;
int main()
{
int i, nr;
cin >> n;
st.resize(4 * n + 5);
for (i = 1; i <= n; i++) {
cin >> nr;
int p = i;
update(1, 1, n, nr, p);
}
for (i = 1; i <= n; i++) {
cout<<query(1, 1, n, i, i)<<"\n";
}
return 0;
}