#7测试点TLE,求助qwq
查看原帖
#7测试点TLE,求助qwq
757021
xvd_yyx楼主2023/3/29 20:41
#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<iomanip>
#include<cstdlib>
#include<stdlib.h>
#include<cmath>
#include<algorithm>
#include<vector>
#include<map>
#include<stack>
#include<queue>
#include<deque>
using namespace std;
int p1, p2, p3;
string s;
int pd(char a){
	if(a=='-'){
		return 1;
	}
	if(a>='0'&&a<='9'){
		return 2;
	}
	if(a>='a'&&a<='z'){
		return 3;
	}
}
int main() {
	cin >> p1 >> p2 >> p3 >> s;
	for (int i = 0; i < s.length(); i++) {
		if (s[i] == '-') {
			if (i != 0 && i != s.length() - 1) {
				if (pd(s[i-1])!=pd(s[i+1])) {
					cout << '-';
				} else {
					if (s[i - 1] >= s[i + 1]) {
						cout << '-';
						continue;
					}
					if (s[i - 1] >= 'a' && s[i - 1] <= 'z') {
						if (p3 == 1) {
							if (p1 == 1) {
								for (char j = s[i - 1] + 1; j < s[i + 1]; j++) {
									for (int k = 1; k <= p2; k++) cout << j;
								}
							} else if (p1 == 2) {
								for (char j = s[i - 1] + 1; j < s[i + 1]; j++) {
									for (int k = 1; k <= p2; k++){
										char c=j-32;
										cout<<c;
									}
								}
							} else if (p1 == 3) {
								for (char j = s[i - 1] + 1; j < s[i + 1]; j++) {
									for (int k = 1; k <= p2; k++) cout << '*';
								}
							}
						} else {
							if (p1 == 1) {
								for (char j = s[i + 1] - 1; j > s[i - 1]; j--) {
									for (int k = 1; k <= p2; k++) cout << j;
								}
							} else if (p1 == 2) {
								for (char j = s[i + 1] - 1 ; j > s[i - 1] ; j--) {
									for (int k = 1; k <= p2; k++){
										char c=j-32;
										cout<<c;
									}
								}
							} else if (p1 == 3) {
								for (char j = s[i - 1] + 1; j < s[i + 1]; j++) {
									for (int k = 1; k <= p2; k++) cout << '*';
								}
							}
						}
						continue;
					}
					if (s[i - 1] >= '0' && s[i - 1] <= '9') {
						if (p3 == 1) {
							if (p1 == 1) {
								for (int j = s[i - 1] + 1; j < s[i + 1]; j++) {
									for (int k = 1; k <= p2; k++) cout << j-48;
								}
							} else if (p1 == 2) {
								for (int j = s[i - 1] + 1; j < s[i + 1]; j++) {
									for (int k = 1; k <= p2; k++) cout << j-48;
								}
							} else if (p1 == 3) {
								for (int j = s[i - 1] + 1; j < s[i + 1]; j++) {
									for (int k = 1; k <= p2; k++) cout << '*';
								}
							}
						} else {
							if (p1 == 1) {
								for (int j = s[i + 1] - 1; j > s[i - 1]; j--) {
									for (int k = 1; k <= p2; k++) cout << j-48;
								}
							} else if (p1 == 2) {
								for (int j = s[i + 1] - 1 ; j > s[i - 1] ; j++) {
									for (int k = 1; k <= p2; k++) cout << j-48 ;
								}
							} else if (p1 == 3) {
								for (char j = s[i - 1] + 1; j < s[i + 1]; j++) {
									for (int k = 1; k <= p2; k++) cout << '*';
								}
							}
						}
					}
				}

			} else {
				cout << '-';
			}
		} else {
			cout << s[i];
		}
	}
	return 0;
}


挺长的,不知道怎么优化了,感觉思路没问题 qwq

2023/3/29 20:41
加载中...