为啥炸零,样例已过,下载的数据点也是
查看原帖
为啥炸零,样例已过,下载的数据点也是
363669
hwwqy楼主2021/9/11 21:54
#include<bits/stdc++.h>
using namespace std;
const int N=1010;
string a[1010];
int n,q;
string bj(string a,string b)
{
	if(a.size()>b.size())return b;
	if(a.size()<b.size())return a;
	for(int i=0;i<a.size();i++)
	{
		if(a[i]>b[i])return a;
		else if(b[i]>a[i])return b;
	}
	return a;
}
bool f(string p)
{
	string ans="29389012487901274390127390124719041203912739012471903713891274891247903147";
	for(int i=1;i<=n;i++)
	{
		bool flag=true;
		for(int j=0;j<p.size();j++)
		{
			if(p[p.size()-j-1]!=a[i][a[i].size()-j-1])
			{
				flag=false;
				break;
			}
			//cout<<endl;
		}
		if(flag)
		{
			ans=bj(ans,a[i]);
		}
		
	}
	if(ans!="29389012487901274390127390124719041203912739012471903713891274891247903147")cout<<ans<<endl;
	else return false;
}
int main()
{
	cin>>n>>q;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	while(q--)
	{
		string tmp;
		int sb;
		cin>>sb>>tmp;
		if(!f(tmp))
		{
			cout<<-1<<endl;
		}
	}
	
	return 0;
} 
/*
5 5
2123
1123
23
24
24
2 23
3 123
3 124
2 12
2 12
*/
2021/9/11 21:54
加载中...