蒟蒻#3TLE求助
查看原帖
蒟蒻#3TLE求助
304394
虹雷Arkhalis楼主2024/10/22 18:36
#include <bits/stdc++.h>
using namespace std;

#define M 200
string s;
int a[21][M],len1[21],len2[21],b[21][M],chu[21][M],c[21];
int cnt,n,shu,len;

int main()
{
	cin>>n;
	for(int i=0;i<n;++i)
	{
		cin>>s;
		len1[i]=s.length();
		len2[i]=len1[i];
		for(int j=0;j<len1[i];++j)
			a[i][j]=s[j]-'0';
	}
	sort(len2,len2+n);
	for(int i=0;i<n;++i)
		if(len1[i]==len2[n-1])
		{
			for(int j=0;j<len2[n-1];++j)
				b[cnt][j]=a[i][j];
			cnt++;
		}//按数比较
	shu=1;
	len=len2[n-1];
	int z=n;
	while(cnt!=1||shu==len)
	{
		cnt=0;
		for(int i=0;i<z;++i)
			c[i]=b[i][shu-1];
		sort(c,c+z);
		for(int i=0;i<z;++i)
			if(b[i][shu-1]==c[z-1])
			{
				for(int j=0;j<len;++j)
					chu[cnt][j]=b[i][j];
				cnt++;
			}
		z=cnt;
		for(int i=0;i<z;++i)
			for(int j=0;j<len;++j)
				b[i][j]=chu[i][j];
	}//按位比较
	int upp=0;
	for(int i=0;i<n;++i)
		if(len1[i]==len)
		{
			for(int j=0;j<len;++j)
			{
				if(a[i][j]==b[0][j])
					upp++;
				else
					break;
			}
			if(upp==len)
			{
				cout<<i+1<<endl;
				break;
			}
		}
	for(int i=0;i<len;++i)
		cout<<b[0][i];
	return 0;
}
2024/10/22 18:36
加载中...