ABC C
  • 板块学术版
  • 楼主封禁用户
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/10/14 21:44
  • 上次更新2023/11/2 13:46:50
查看原帖
ABC C
1011137
封禁用户楼主2023/10/14 21:44
#include <bits/stdc++.h>
using namespace std;

int n;
string t_1, t_2, t_3;
int k_1, k_2[500001];

int main() {
	scanf("%d", &n);
	cin >> t_1;
	for (int i = 1; i <= n; i++) {
		cin >> t_2;
		if (t_2.size() - 2 > t_1.size() - 1)
			continue;
		if (t_2 == t_1) {
			k_1++;
			k_2[k_1] = i;
		} else {
			t_3 = t_1.substr(1, t_1.size() - 1);
			if (t_3 == t_2) {
				k_1++;
				k_2[k_1] = i;
				continue;
			}
			t_3 = t_1.substr(0, t_1.size() - 2);
			if (t_3 == t_2) {
				k_1++;
				k_2[k_1] = i;
				continue;
			}
			t_3 = t_2;
			for (int j = 0; j < t_3.size(); j++)
				if (t_3[j] != t_1[j]) {
					char x = t_3[j];
					string s;
					s = x;
					t_3.erase(j, 1);
					if (t_3 == t_1) {
						k_1++;
						k_2[k_1] = i;
						continue;
					} else {
						t_3.insert(j - 1, s);
						break;
					}
				}
			int t = 0;
			if (t_2.size() == t_1.size()){
				for (int j = 0; j < t_2.size(); j++)
					if (t_2[j] != t_1[j])
						t++;
				if (t == 1) {
					k_1++;
					k_2[k_1] = i;
					continue;
				}
			}
		}
	}
	printf("%d\n", k_1);
	for (int i = 1; i <= k_1; i++)
		printf("%d ", k_2[i]);
}

为什么RE?

2023/10/14 21:44
加载中...