60分求调
查看原帖
60分求调
1724170
zhapenghui楼主2025/8/1 21:27
#include<bits/stdc++.h>
using namespace std;
char a[510][510];
string s;
int main()
{
	int n,k,f=1;
	cin>>n;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			cin>>a[i][j];
	int x=1,y=1;
	s[k++]=a[1][1]; 
	while(true)
	{
		if(x==1&&y!=n) 
			y++;
		else 
			x++;
		s[k++]=a[x][y];
		while(y!=1&&x!=n)
		{
			x++;
			y--;
			s[k++]=a[x][y];
		}
		if(y==1&&x!=n) 
			x++;
		else 
			y++;
		s[k++]=a[x][y];
		if(k==n*n)
			break;
		while(x!=1&&y!=n)
		{
			x--;
			y++;
			s[k++]=a[x][y];
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			a[i][j]=' '; 
		} 
	} 
	k=0,x=1,y=0;
	int t=10;
	while(t--)
	{
		while(y<=n&&a[x][y+1]==' ')a[x][++y]=s[k++];
		while(x<=n&&a[x+1][y]==' ')a[++x][y]=s[k++];
		while(y>=1&&a[x][y-1]==' ')a[x][--y]=s[k++];
		while(x>=1&&a[x-1][y]==' ')a[--x][y]=s[k++];
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
			cout<<a[i][j]; 
		cout<<endl;
	} 
} 
2025/8/1 21:27
加载中...