有没有人给我一个Hack,qwq
#include<iostream>
using namespace std;
char a[4000005],ans[4000005],l;
int n,zhan[1000005],tot,num,isq;
char url[10005][10005];
bool pd(int i,int len,char* c){
for(int j=i;j<i+len;++j){
if(a[j]!=c[j-i])return 0;
}
return 1;
}
void qwq(int x){
if(zhan[tot]!=x){
cout<<"Match Error";exit(0);
}
else --tot;
}
void add(char c){
ans[++l]=c;
}
int main(){
while((a[++n]=getchar())!=EOF){
if(a[n]=='\r')--n;
}
a[0]='\n';
--n;
for(int i=1;i<=n;){
if(isq==0&&pd(i,4,"[h1]")){
zhan[++tot]=1;
add('#'),add(' ');
i+=4;
}
else if(isq==0&&pd(i,5,"[/h1]")){
qwq(1);
add(' '),add('#');
i+=5;
}
else if(isq==0&&pd(i,4,"[h2]")){
zhan[++tot]=2;
add('#'),add('#'),add(' ');
i+=4;
}
else if(isq==0&&pd(i,5,"[/h2]")){
qwq(2);
add(' '),add('#'),add('#');
i+=5;
}
else if(isq==0&&pd(i,3,"[i]")){
zhan[++tot]=3;
add('*');
i+=3;
}
else if(isq==0&&pd(i,4,"[/i]")){
qwq(3);
add('*');
i+=4;
}
else if(isq==0&&pd(i,3,"[b]")){
zhan[++tot]=4;
add('_');add('_');
i+=3;
}
else if(isq==0&&pd(i,4,"[/b]")){
qwq(4);
add('_');add('_');
i+=4;
}
else if(isq==0&&pd(i,5,"[url=")){
zhan[++tot]=5;
++num;
int j=0;
for(j=i+5;j<=n&&a[j]!=']';++j){
url[num][j-(i+5)]=a[j];
}
url[num][j]='\0';
add('[');
i=j+1;
}
else if(isq==0&&pd(i,6,"[/url]")){
qwq(5);
add(']');
add('(');
for(int j=0;url[num][j]!='\0';++j){
add(url[num][j]);
}
--num;
add(')');
i+=6;
}
else if(isq==0&&pd(i,5,"[img=")){
zhan[++tot]=6;
++num;
add('!');
int j=0;
for(j=i+5;j<=n&&a[j]!=']';++j){
url[num][j-(i+5)]=a[j];
}
url[num][j]='\0';
add('[');
i=j+1;
}
else if(isq==0&&pd(i,6,"[/img]")){
qwq(6);
add(']');
add('(');
for(int j=0;url[num][j]!='\0';++j){
add(url[num][j]);
}
--num;
add(')');
i+=6;
}
else if(isq==0&&pd(i,7,"[quote]")){
zhan[++tot]=7;
isq=1;
int j=i+7;
if(a[i-1]!='\n')add('\n');
add('>');add(' ');
while(a[j]=='\n')++j;
i=j;
}
else if(pd(i,8,"[/quote]")){
qwq(7);
isq=0;
while(ans[l]=='>'||ans[l]=='\n'||ans[l]==' ')--l;
if(a[i+8]!='\n')add('\n');
i+=8;
}
else{
add(a[i]);
if(a[i]=='\n'&&isq)add('>'),add(' ');
++i;
}
}
if(tot)cout<<"Unclosed Mark";
else for(int i=1;i<=l;++i)putchar(ans[i]);
return 0;
}