80 WA#6#7 求解释哪里错了
查看原帖
80 WA#6#7 求解释哪里错了
577683
Neil_Seniorious楼主2023/10/18 19:43
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<algorithm>
using namespace std;
int n,m,f,l;
char a[142];
void read();
bool check(int);
void unfold(int);
void print(char);
void work(char);
int main(){
	read();
	for(int i=1;i<=l;i++){
		if(check(i)){
			unfold(i);
		}
		else putchar(a[i]);
	}
	return 0;
}
void read(){
	scanf("%d%d%d",&n,&m,&f);
	scanf("%s",a+1);
	l=strlen(a+1);
}
bool check(int k){
	if(a[k]!='-') return 0;
	if(k<=1||k>=l) return 0;
	if(a[k-1]>=a[k+1]) return 0;
	if(a[k-1]>='0'&&a[k-1]<='9'){
		if(a[k+1]<'0'||a[k+1]>'9') return 0;
	}
	else if(a[k+1]>='0'&&a[k+1]<='9'){
		if(a[k-1]<'0'||a[k-1]>'9') return 0;
	}
	return 1;
}
void unfold(int k){
	if(f==1) for(char c=a[k-1]+1;c<a[k+1];c++) work(c);
	else for(char c=a[k+1]-1;c>a[k-1];c--) work(c);
}
void print(char c){
	for(int i=1;i<=m;i++) putchar(c);
}
void work(char c){
	if(n==3) print('*');
	else if(n==2) print(c-'a'+'A');
	else print(c);
}
2023/10/18 19:43
加载中...