标签:
题意:给出两组数字,第二组数字代表第一组数字中的第几位。求从那一位开始,后面不同的数的个数
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int main() { int n,m,k,i,l; int a[100001],b[100001],s[100001]; while(~scanf("%d %d",&n,&m)) { memset(b,0,sizeof(b)); memset(s,0,sizeof(s)); for(i=1;i<=n;i++) scanf("%d",&a[i]); int ans=0; for(i=n;i>=1;i++) { if(!s[a[i]]) { ans++; s[a[i]]=1; } b[i]=ans; } while(m--) { scanf("%d",&l); printf("%d\n",b[l]); } } return 0; }
标签:
原文地址:http://www.cnblogs.com/awsent/p/4288833.html