WA求调,万分感谢
查看原帖
WA求调,万分感谢
1046254
cqbzFGR楼主2024/9/5 11:38

调了两个小时了……

#include<iostream>
#include<cstring>
#include<string>
#include<cmath>
using namespace std;
const int maxn=1e3+5;
const int maxm=185;
int l[maxn],tmp[maxn],li[maxn],maxx;
string s[maxn],a[maxn],ans[maxn];
string str[maxn][maxm];
int t,n;
void init(){
    maxx=0,n=0;
    for(int i=1;i<=1000;i++){
        s[i]="",a[i]="",l[i]=0,tmp[i]=0,li[i]=0;
        for(int j=1;j<=180;j++){
            str[i][j]="";
        }    
    }
}
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
	cin>>t;
	while(t){
        init();
		while(1){
			getline(cin,s[n]);
			if(s[n]=="@"){
				t--;
				break;
			}
			l[n]=s[n].size();
			s[n]=" "+s[n];
			n++;
		}
		n--;
		for(int i=1;i<=n;i++){
            bool flag=1;
			for(int j=1;j<=l[i];j++){
                if(s[i][j]==' '&&flag==1) continue;
                else flag=0;
                if(s[i][j]==' '&&s[i][j-1]==' ') continue;
				a[i]+=s[i][j];          
			}
			l[i]=a[i].size();
		}
		for(int i=1;i<=n;i++){
			a[i]=" "+a[i];
			tmp[i]++;
			for(int j=1;j<=l[i];j++){
				if(a[i][j]==' '){
					tmp[i]++;
					continue;
				}
				str[i][tmp[i]]+=a[i][j];
			}
            if(maxx<tmp[i]) maxx=tmp[i];
		}
		for(int i=1;i<=maxx;i++){
			for(int j=1;j<=n;j++){
				int sum=str[j][i].size();
                if(li[i]<sum) li[i]=sum;
			}
		}
		for(int i=1;i<=maxx;i++){
			for(int j=1;j<=n;j++){
				int tot=str[j][i].size();
				if(tot<li[i]){
					int cnt=li[i]-str[j][i].size();
                    while(cnt--) str[j][i]=str[j][i]+" ";
				}
			}
		}
        for(int i=1;i<=n;i++){
            for(int j=1;j<=maxx;j++){
                ans[i]+=(str[i][j]+' ');
            }
            l[i]=ans[i].size();
        }
        for(int i=1;i<=n;i++){
            for(int j=l[i]-1;j>=0;j--){
                if(ans[i][j]==' '){
					l[i]--;
				}
                else break;
            }
        }
        for(int i=1;i<=n;i++){
            for(int j=0;j<l[i];j++){
                cout<<ans[i][j];
            }
            cout<<endl;
        }
	}
	return 0;
}
2024/9/5 11:38
加载中...