77Glorious @ 2024-05-04 21:18:49
(甚至选了自动检测语言
#include<bits/stdc++.h>
using namespace std;
int n,q;
string book[1010],read[1010];
int t[1010];//t是读者书的长度
bool cmp(string x,string y)
{
if(x.length()<y.length()) return 1;//长度小就换
if(x.length()>y.length()) return 0;
for(int i=0;i<x.length();i++)//长度相等就比较
if(x[i]<y[i]) return 1;
return 0;
}
int main()
{
cin>>n>>q;
for(int i=1;i<=n;i++) cin>>book[i];
for(int i=1;i<=q;i++) cin>>t[i]>>read[i];
sort(book+1,book+1+n,cmp);//给书的编号排序
/*for(int i=1;i<=n;i++) cout<<book[i]<<' ';
cout<<endl;*/
for(int i=1;i<=q;i++)//枚举reader数
{
bool f=0;
for(int j=1;j<=n;j++)//枚举book数
{
int booklen=book[j].length();//图书馆书的长度
if(t[i]>booklen) continue; //不选编号长度小的书
else if( t[i]<=book[j].length() )
{
if(book[j].substr(booklen-t[i],t[i])==read[i])//如果搜到了
{
f=1;
//cout<<book[i].substr(booklen-t[i],t[i])<<endl;
cout<<book[j]<<endl;
break; //退出枚举的book,进入下一个人
}
}
}
if(f==0) cout<<-1<<endl;//没找到
}
return 0;
}
by _Somutate_ @ 2024-05-04 21:22:12
应该是 read 在万能头文件中重名了,改个变量名吧
by YM_1 @ 2024-07-09 11:35:10
string book[1010],read[1010];
这里的“read”重名了(接上个回复) @77Glorious @77Glorious