30分求调
查看原帖
30分求调
540229
hcx2012楼主2025/7/24 07:08
#include <bits/stdc++.h>
using namespace std;
int a[110];
char ans[110][110];
char func(char c){
    if(c=='+')return '/';
    if(c=='-')return '\\';
    return '_';
}
int main(){
    int n;
    cin>>n;
    string s;
    cin>>s;
    assert(s.size()==n);
    s=" "+s;
    int mn=0,mx=0;
    a[1]=0;
    for(int i=2;i<=n;i++){
        a[i]=a[i-1];
        if(s[i-1]=='-'&&s[i]!='=')a[i]--;
        if(s[i-1]=='+'&&s[i]!='-')a[i]++;
        mn=min(mn,a[i]);
        mx=max(mx,a[i]);
    }
    int tag=1-mn;
    mx+=tag;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=mx;j++){
            ans[j][i]='.';
        }
    }
    for(int i=1;i<=n;i++){
        a[i]+=tag;
        //cout<<a[i]<<endl;
        ans[a[i]][i]=func(s[i]);
    }
    for(int i=mx;i>=1;i--){
        for(int j=1;j<=n;j++){
            cout<<ans[i][j];
        }
        cout<<endl;
    }
    return 0;
}

玄关。

2025/7/24 07:08
加载中...