Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- typedef long double ld;
- const int MX=1e5+5;
- int pa[MX][64];
- int st[MX],n,k,m;
- int main()
- {
- cin>>n>>k>>m;
- for(int i=0;i<n;i++)
- scanf("%d",st+i);
- for(int i=0;i<k;i++)
- {
- int x;
- scanf("%d",&x);
- pa[i+1][0]=x;
- }
- m--;
- for(int j=1;j<=k;j++){
- for(int i=1;i<=31;i++)
- {
- pa[j][i]=pa[pa[j][i-1]][i-1];
- //if(j==5)cout<<pa[j][i]<<endl;
- }
- }
- for(int i=0;i<n;i++)
- {
- for(int j=0;j<32;j++)
- {
- if((1<<j)&m){
- if(!pa[st[i]][j])break;
- st[i]=pa[st[i]][j];
- }
- }
- }
- for(int i=0;i<n;i++)
- {
- printf("%d ",st[i]);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement