我改了之后又出现了新问题
查看原帖
我改了之后又出现了新问题
1435692
difficultlong楼主2024/9/28 21:06

代码:

#include<bits/stdc++.h>
using namespace std;
int n,q;
int tb[1001],fh[1001][9],xbc[1001],xb[1001];
int main(){
	scanf("%d%d",&n,&q);
	for(int i=1;i<=n;i++){
		scanf("%d",&tb[i]);
	}
	for(int i=1;i<=q;i++){
		scanf("%d%d",&xbc[i],&xb[i]);
		
	}
	sort(tb+1,tb+n+1);
	for(int i=1;i<=n;i++){
		int a=tb[i];
		int j=1;
		while(a){
			fh[i][j]=a%10;
			a/=10;
			j++;
		}
	}
	bool flag;
	for(int i=1;i<=q;i++){
		int a=xb[i],m[9];
		int j=1;
		while(j<=xbc[i]){
			m[j]=a%10;
			a/=10;
			j++;
		}
		for(int k=1;k<=n;k++){
			int l=1;
			flag=true;
			while(l<=xbc[i]){
				if(m[l]!=fh[k][l]){
					flag=false;
					break;
				}
				l++;
			}
			if(flag){
				printf("%d\n",tb[i]);
				break;
			}
		}
		if(!flag){
			printf("-1\n");
		}
	}
	return 0;
}

按照样例复制粘贴后:

输出结果

5 5
2123
1123
23
24
24
2 23
3 123
3 124
2 12
2 12
———
23
24
-1
-1
-1

(上面是我的输入和输出,输出和样例对不上)
2024/9/28 21:06
加载中...