-
F - Secret Poems
- HihoCoder - 1632
- 题意:按照第一种格式读入,按照第二种格式输出
-
#include<bits/stdc++.h> using namespace std; #define maxn 111 int ans,n,m,t,x; char str[maxn][maxn]; string s; void dfs(int x,int y,int n,int t) { if(n<1)return; for(int i=y; i<y+n; i++) str[x][i]=s[t++]; for(int i=x+1; i<x+n; i++) str[i][y+n-1]=s[t++]; for(int i=y+n-2; i>=y; i--) str[x+n-1][i]=s[t++]; for(int i=x+n-2; i>x; i--) str[i][y]=s[t++]; dfs(x+1,y+1,n-2,t); } int main() { while(cin>>n) { s.clear(); for(int i=0; i<n; i++) cin>>str[i]; for(int i=0; i<2*n; i++) { if(i%2) { for(int j=i; j>=0; j--) if(i-j<n&&j<n) s+=str[i-j][j]; } else { for(int j=0; j<=i; j++) if(i-j<n&&j<n) s+=str[i-j][j]; } } dfs(0,0,n,0); for(int i=0; i<n; i++) cout<<str[i]<<endl; } return 0; }