WA求调
查看原帖
WA求调
1127560
SR_G_B_ysqd1602楼主2024/8/15 14:16
#include<bits/stdc++.h>
using namespace std;
int h;
string s;
string line[114];
int xz[114],t[514],sc[114];
int main(){
	cin>>h;
	cin>>s;
	int cd=2*h-2;
	int x=ceil(1.0*s.size()/cd);
	xz[1]=xz[h]=x;
	for(int i=2;i<h;i++){
		xz[i]=2*x;
	}
	if(s.size()%cd){//如果能被整除就不多余 
		for(int i=s.size()%cd+1;i<=h;i++){
			xz[i]--;
		}
		for(int i=h-1;i>1;i--)xz[i]--;
	}
	for(int i=1;i<=h;i++){
		t[i]=t[i-1]+xz[i]; 
	}
	for(int i=1;i<=h;i++){
		for(int j=t[i-1];j<t[i];j++){
			line[i]+=s[j];
		}
	}
	for(int i=1;i<=x;i++){//第i组 
		for(int j=1;j<=h&&i+j<s.size();j++){//前半部分 
			if(sc[j]==xz[j]+1)break;
			cout<<line[j][sc[j]++]; //第j列 
		}
		for(int j=h-1;j>1&&i+j<s.size();j--){
			if(sc[j]==xz[j]+1)break;
			cout<<line[j][sc[j]++];
		}
	}
	return 0;
}
2024/8/15 14:16
加载中...