50分WA和TLE求调
查看原帖
50分WA和TLE求调
1270926
wawatime1楼主2024/9/25 17:51
#include <bits/stdc++.h>
using namespace std;
int p1, p2, p3;
string a;

int main() {
	cin >> p1 >> p2 >> p3;
	cin >> a;

	for (int i = 0; i < a.size(); i++) {
		if (a[i] == '-' && i != 0) {
			char l = a[i - 1], r = a[i + 1];
			while (r == '-') {
				++i;
				r = a[i + 1];
			}
			if (l >= r || !((l >= '0' && l <= '9' && r >= '0' && r <= '9') || (l >= 'a' && l <= 'z' && r >= 'a' && r <= 'z')
			                || (l >= 'A' && l <= 'Z' && r >= 'A' && r <= 'Z'))) {
				cout << '-';
			} else {
				if (p3 == 12) {
					for (char k = r - 1; k >= l + 1; --k) {
						for (int j = 1; j <= p2; j++) {
							if (p1 == 3)
								cout << '*';
							else if (p1 == 2) {
								if (k >= 'a' && k <= 'z')
									k -= 32;
								cout << k;
							} else if (p1 == 1) {
								if (k >= 'A' && k <= 'Z')
									k += 32;
								cout << k;
							}
						}
					}
				} else {
					if (p3 == 1) {
						for (char k = l + 1; k <= r - 1; ++k) {
							for (int j = 1; j <= p2; j++) {
								if (p1 == 3)
									cout << '*';
								else if (p1 == 2) {
									if (k >= 'a' && k <= 'z')
										k -= 32;
									cout << k;
								} else if (p1 == 1) {
									if (k >= 'A' && k <= 'Z')
										k += 32;
									cout << k;
								}
							}
						}
					}
				}
			}
		} else
			cout << a[i];
	}

	return 0;
}
2024/9/25 17:51
加载中...