NOIP2017普及组——图书管理员

 1 #include<bits/stdc++.h>
 2 #define MAX_N 1000+10
 3 using namespace std;
 4 int isb[MAX_N];
 5 int n,q;
 6 
 7 inline int read()
 8 {
 9     int x=0,f=1;char ch=getchar();
10     while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
11     while(ch>='0'&&ch<='9')x=(x<<1)+(x<<3)+(ch^48),ch=getchar();
12     return x*f;
13 }
14 
15 int calc(int bm,int len)
16 {
17     int e=0;
18     while(bm){e=(e<<1)+(e<<3)+bm%10;bm/=10;}
19     for(int i=1;i<=n;i++)
20     {
21         int now=isb[i],cm=0;
22         for(int j=1;j<=len;j++){cm=(cm<<1)+(cm<<3)+now%10;now/=10;}
23         if(cm==e)
24             return isb[i];
25     }
26     return -1;
27 }
28 
29 int main()
30 {
31     freopen("librarian.in","r",stdin);
32     freoepn("librarian.out","w",stdout);
33     n=read();q=read();
34     for(int i=1;i<=n;i++)isb[i]=read();
35     sort(isb+1,isb+n+1);
36     for(int i=1;i<=q;i++)
37     {
38         int l=read(),need=read();
39         int ans=calc(need,l);
40         printf("%d\n",ans);
41     }
42     return 0;
43 }

 

posted @ 2019-07-14 11:36  魑吻丶殇之玖梦  阅读(479)  评论(0)    收藏  举报