题解 P3955 【图书管理员】
白桦树
2017-11-14 19:34:23
发一个更简单的解法
看到题解有些复杂了,其实可以不用字符串处理,不用取模求每一位
用时: 0ms / 内存: 2164KB
```cpp
#include<iostream>
#include<cstdio>
#include<algorithm>
#define maxn 1005
using namespace std;
int n,q,l,code;//l为需求码长度,code为需求码
int a[maxn];//存储图书馆编号
int mod[9]={0,10,100,1000,10000,100000,1000000,10000000,100000000};//方便取模,mod[i]表示一个数取后i位要模多少
int judge(){//函数,返回找到的编号
for(int i=1;i<=n;i++){
if(a[i]%mod[l]==code) return a[i];//如果第i个图书编码的后l位正好等于code,那么就找到了对应的数
}
return -1;
}
int main(){
cin>>n>>q;
for(int i=1;i<=n;i++) cin>>a[i];
sort(a+1,a+1+n);//STL快排,从小到大排序,确保找到的是最小的数
for(int i=1;i<=q;i++){
cin>>l>>code;
cout<<judge()<<endl;
}
return 0;
}
```