Pagini recente » Cod sursa (job #1191947) | Cod sursa (job #566759) | Cod sursa (job #1409226) | Cod sursa (job #2238480) | Cod sursa (job #2071981)
#define DM 250001
#define x first
#define y second
#include <fstream>
#include <map>
using namespace std;
ifstream fi ("stramosi.in");
ofstream fo ("stramosi.out");
int n, m, p, q, v[DM];
map <pair <int, int>, int> mp;
int findp(pair <int, int> a)
{
if (a.x == 1)
return v[a.y];
if (mp.find(a) != mp.end())
return mp[a];
return mp[a] = findp({a.x - 1, v[a.y]});
}
int main()
{
fi >> n >> m;
for (int i = 1; i <= n; ++i)
fi >> v[i];
for (int i = 1; i <= m; ++i)
{
fi >> q >> p;
fo << findp({p, q}) << '\n';
}
return 0;
}