这段代码我改了N次了
我的做法有点暴力,因为我知道不会超时
#include<iostream>
#include<cmath>
#include<string>
using namespace std;
int main(){
int n,q;
cin>>n>>q;
string zx;
string yuan[n+1];
int wei[q+1];
string xu[q+1];
for(int i=1;i<=n;i++)
cin>>yuan[i];
for(int i=1;i<=q;i++){
cin>>wei[i];
cin>>xu[i];
}
zx="100000001";
for(int i=1;i<=q;i++){
zx="100000001";
for(int j=i;j<=n;j++)
if(yuan[j].find(xu[i],xu[i].size()-wei[i])!=-1)
if(zx.size()!=yuan[j].size())
if(zx.size()>yuan[j].size())
zx=yuan[j];
else
if(zx>yuan[j])
zx=yuan[j];
if(zx=="100000001")
cout<<-1<<endl;
else
cout<<zx<<endl;
}
}