题解 P3955 【图书管理员】
Maxrage
2019-10-13 18:07:00
# 题解 P3955 【图书管理员】~~(论图书管理员有多懒)~~
---
## Some ideas
~~~
首先,读入并存入数组,排列。取余查找*,有就输出**,无输出-1
* 用循坏!千万别用pow函数。虽然洛谷上pow能过,但一个系统一个数据。别的网站由于实数整数原因,过不了!!!
**因为先前已经排列,所以没必要再去找。一来浪费时间,二来不会输出最小的
~~~
$\color{white}\colorbox{white}{\text{第三篇题解,管理大大求过!!!}}$
## Code
```cpp
#include<bits/stdc++.h>
using namespace std;
int n,q,ans,noww;
int a[1005],b[1005],c[1005];
int main()
{
scanf("%d%d",&n,&q);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);//读并存入
sort(a+1,a+n+1);//排它!!!
for(int i=1;i<=q;i++)
scanf("%d%d",&b[i],&c[i]);//读入
for(int i=1;i<=q;i++)
{
ans=-1;noww=1;//重新定义,避免之前的影响这一次运算
//while(b[i]--)noww*=10;
while(c[i]>=noww)noww*=10;/*两种循坏方式*/
for(int j=1;j<=n;j++)
if(a[j]%noww==c[i])//取余判断
{
ans=a[j];
break;
}
printf("%d\n",ans);//输出
}
return 0;
}
```
[最后过了](https://www.luogu.org/record/25150844)