样例过了,为啥20分?
查看原帖
样例过了,为啥20分?
1264600
Lazy_make_name楼主2024/3/6 22:09

这段代码我改了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;
	}
}
2024/3/6 22:09
加载中...