读懂题目之后找规律就可以知道是一道简单的stack,queue题
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N = 1e5+10;
int a[100010];
stack<int> stk[60011];
queue<int> q;
void solve()
{
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++)
{
int x;
cin>>x;
q.push(x);
}
for(int i=0;i<n/m;i++)
{
for(int j=0;j<m;j++)
{
int x;
cin>>x;
stk[i].push(x);
}
}
for(int i=0;i<n/m;i++)
{
for(int j=0;j<m;j++)
{
int x=q.front();
q.pop();
int y=stk[i].top();
stk[i].pop();
a[x]=y;
}
}
int pp;
cin>>pp;
while(pp--)
{
int x;
cin>>x;
if(a[x]==0) cout<<"Wrong Number"<<endl;
else cout<<a[x]<<endl;
}
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int T = 1;
while (T--)
{
solve();
}
return 0;
}