yy0000 @ 2024-03-15 15:15:09
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <stdio.h>
using namespace std;
int main(){
int n,q;
cin>>n>>q;
int bk[n],flag[n],hum[q],wei[q];//书本数组,标记数组,需求码数组,需求码位数数组
for(int i=0;i<n;i++){
cin>>bk[i];
flag[i]=0;
}
for(int i=0;i<q;i++){
cin>>wei[i]>>hum[i];
}
sort(bk,bk+n);
for(int i=0;i<q;i++){
int chu=1,tip=0;
for(int k=0;k<wei[i];k++)
{
chu=chu*10;//求除数
}
for(int j=0;j<n;j++){
if(hum[i]==bk[j]%chu&&flag[j]==0){//书本编号最后几位来比较且标记为0
tip++;
flag[j]=1;
cout<<bk[j]<<endl;
break;
}
}
if(tip==0)//没找到则输出0
cout<<-1<<endl;
}
return 0;
}
by drboy @ 2024-03-15 15:55:35
代码没问题。
flag是用来标记书是否被读者请求过,如果被请求过,代码中的逻辑就会跳过这本书。这个条件题目中并没有要求。
我猜大概是这个原因导致的吧。
by liuyangxiao1012 @ 2024-07-02 22:43:21
同意楼上