题面
图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个正整数。 每位借书的读者手中有一个需求码,这个需求码也是一个正整数。如果一本书的图书编码恰好以读者的需求码结尾,那么这本书就是这位读者所需要的。 小 D 刚刚当上图书馆的管理员,她知道图书馆里所有书的图书编码,她请你帮她写一个程序,对于每一位读者,求出他所需要的书中图书编码最小的那本书,如果没有他需要的书,请输出。
思路
输入完图书编码后排序一边,然后遍历所有编码,判断读者是否需要该书。需要则输出编码,最后没书了就输出 -1
代码
#include<bits/stdc++.h>
using namespace std;
int s[1010];
int n,q,w,num;
bool check(int a,int b){
int i=1;
while(i<=a&&i<=b){
if(a%i!=b%i)return false;
i*=10;
}
return true;
}
int main(){
//freopen("library.in","r",stdin);
//freopen("library.out","w",stdout);
cin>>n>>q;
for (int i=1;i<=n;i++)cin>>s[i];
sort(s+1,s+n+1);
for (int i=1;i<=q;i++){
cin>>w>>num;
bool flag=true;
for (int j=1;j<=n;j++){
if (s[j]>=num and check(s[j],num)){
cout<<s[j]<<endl;
flag=false;
break;
}
}
if (flag)cout<<-1<<endl;
}
//fclose(stdin);
//fclose(stdout);
return 0;
}