WA13,求 hack
查看原帖
WA13,求 hack
602632
_7Mr楼主2023/10/16 08:54
#include<bits/stdc++.h>
#define int long long
#define double long double
#define INF INT_MAX
using namespace std;
const int maxn=6e5+5;
int n,ans;
int p[maxn];
string s;
signed main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	cin>>n>>s;
	for(int i=1; i<=n; i++) {
		string t;
		cin>>t;
		if(s==t) p[++ans]=i;
		else if(s.size()==t.size()) {
			int flag=0;
			for(int j=0; j<s.size(); j++) {
				if(s[j]!=t[j]) flag++;
			}
			if(flag==1) p[++ans]=i;
		}
		if(s.size()==t.size()-1 || s.size()==t.size()+1) {
			int zc1[105],zc2[105];
			memset(zc1,0,sizeof(zc1));
			memset(zc2,0,sizeof(zc2));
			for(int j=0; j<s.size(); j++) zc1[s[j]-'a']++;
			for(int j=0; j<t.size(); j++) zc2[t[j]-'a']++;
			int pd=0;
			for(int j=0; j<=30; j++) {
				if(abs(zc1[j]-zc2[j])>1) break;
				if(abs(zc1[j]-zc2[j])==1 && pd==1){
					pd=0;
					break;
				}
				if(abs(zc1[j]-zc2[j])==1) pd=1;
			}
			if(pd==1) p[++ans]=i;
		}
	}
	cout<<ans<<endl;
	for(int i=1; i<=ans; i++) cout<<p[i]<<" ";
	cout<<endl;
	return 0;
}

2023/10/16 08:54
加载中...