本文共 942 字,大约阅读时间需要 3 分钟。
#include #include #include #include #include #include #include using namespace std;vector a[100000+100];map temp;int h[100000+100];int shoot[100000+100];int main(){ int n,m; int i,j,k; int now; while(scanf("%d%d",&n,&m)!=EOF) { int t=0; for(int i=0;i<=n;i++) a[i].clear(); temp.clear(); for(i=1;i<=n;i++) { scanf("%d",&h[i]);//vec.push_back(a); } for(i=1;i<=m;i++) { scanf("%d",&shoot[i]); } for(i=n;i>=1;i--) { now=h[i]; if(a[temp[now]].empty()) { temp[now]=++t; // printf("%d...\n",now); } //printf("*.......*\n"); a[temp[now]].push_back(i); } //printf("%d!!!\n",a[2][a[2].size()-1]); for(i=1;i<=m;i++) { now=temp[shoot[i]]; if(!a[now].empty()) { int neww; neww=a[now][a[now].size()-1]; a[now].pop_back(); printf("%d\n",neww); } else { printf("-1\n"); } } } return 0;}
转载于:https://www.cnblogs.com/sola1994/p/4630491.html