题解 P3955 【图书管理员】
OsirisJian · · 题解
一本书可以借给多个人,一本书可以借给多个人!!!! 恶心的题目,不合常规
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,q;//n为书量,q为读者数量
cin>>n>>q;
int m[n];//图书编码
for(int i=0;i<n;i++) cin>>m[i];//输入n本书图书编码
for(int i=1;i<=n-1;i++)//编码排序,小到大
{
bool t=1;
for(int j=0;j<n-i;j++)
{
if(m[j]>m[j+1])
{
int k=m[j];
m[j]=m[j+1];
m[j+1]=k;
t=0;
}
}
if(t)break;
}
//小到大排序ok
int a[q][2];//二维数组
for(int i=0;i<q;i++) cin>>a[i][0]>>a[i][1];//q人需求
//输入完毕,开始匹配
for(int i=0;i<q;i++)//1~q号读者需求
{
int w=1,qt=0;
for(int j=1;j<=a[i][0];j++) w*=10;//需求码长度权重
for(int j=0;j<n;j++)//1~n号书匹配
{
if(m[j]%w==a[i][1])//匹配到图书
{
qt=1;
cout<<m[j]<<endl;
break;
}
}
if(qt)continue;
cout<<-1<<endl;//未匹配到
}
}