60 分求调!
查看原帖
60 分求调!
1001535
封禁用户楼主2024/8/3 21:31
#include <bits/stdc++.h>
using namespace std;
int n, m;
char a[100001], b[100001];
int sum, sum1;
int g;
int id;
bool flag = 0;
int t, t1;
int h;
int d = 0;
int f[100001];
int main() {
	cin >> n >> m;
	for (int i = 0; i < n; i++) {
		cin >> a[i];
		if (a[i] == '#' && flag == 0) id = i, flag = 1;
		if(a[i] == '#') 
		{
			d++;
			f[d] = i;
		}
	}
	for (int i = 0; i < n; i++) cin >> b[i];
	for (int i = 0; i < n; i++) {
		if (a[i] == '#') {
			sum++;
		}
		if (b[i] == '#') {
			sum1++;
		}
	}
	t = sum, t1 = sum1;
	if(t == 0) {cout << a;return 0;}
	if(t1 == 0)
	{
		for(int i = 0; i < n; i++)
		{
			if(a[i] == '#')
			{
				g++;
				a[i] = 'a' + (g - 1) % 26;
			}
		}
		cout << a;
		return 0;
	}
//	cout << t << " " << t1 << endl;r
	if (t1 < 26) {
		for (int i = 0; i < n; i++)
			if (a[i] == '#') g++, a[i] = 'a' + (g - 1) % 26;
	} else if (t1 >= 26) {
	  while(sum1 > 26) 
		{
		    h++;
		    a[f[h]] = 'a';
		    g += 26;
		    sum1 -= 25;
		}
		if (sum1 <= 26) {
			for (int i = f[h] + 1; i < n; i++) {
				if (a[i] == '#') {
					g ++;
					a[i] = 'a' + (g - 1) % 26;
				}
			}
		}
//			cout << g << endl;
	}
//			if ((g) % 26 == 0) {
//				h++;
//				g++;
//				a[f[h]] = 'a';
//			}
//		}
//			if(t1 < 26)
//			{
//				for(int i = f[h] + 1; i < n; i++)
//				{
//					if(a[i] == '#')
//					{
//						g++;
//						a[i] = 'a' + (g - 1) % 26;
//					}
//				}
//			}
	cout << a;
	return 0;
}

不求改对,给个 Hack 就行了

2024/8/3 21:31
加载中...