Untitled
unknown
plain_text
a year ago
1.7 kB
5
Indexable
#include <bits/stdc++.h>
using namespace std ;
#define For(n) for(long long i = 0; i < n; i++)
#define endl '\n'
#define int long long
#define ll long long
#define fast() ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
//***********************Nah I would win*************************/
int n,m,sum;map<pair<int,int>,int> vis;
vector<int> ans;
int sign = 1;
void solve (vector<vector<int>> &v,int x,int y, char state){
if(x > n || y > n || x <= 0 || y <= 0)return;
// cout <<"beg point "<< x<<' '<<y << endl;
if(state == 'u'){
int i = x , j = y;
for(; i <= n && j <= n && i > 0 && i > 0; i-= 1 ,j += 1){
ans.push_back(v[i][j]);
vis[{i,j}]++;
// cout << i << ' '<< j << endl;
}
if(vis[{1,n}] && vis[{n,1}])sign = -1;
if(sign == 1)solve(v,y,x+1,'d');
else solve(v,y+1,x,'d');
}
else {int i = x , j = y;
for( ;i <= n && j <= n && i > 0 && j > 0 ; i += 1 ,j -= 1){
ans.push_back(v[i][j]);
vis[{i,j}]++;
// cout << i << ' '<< j << endl;
}
if(vis[{1,n}] && vis[{n,1}])sign = -1;
if(sign == 1)solve(v,y+1,x,'u');
else solve(v,y,x+1,'u');
}
}
void Gojo(){
cin>>n;
vector<vector<int>> v(n+1,vector<int>(n+1));
for(int i = 1 ; i <= n ;i++)
for(int j = 1; j <= n ; j++){
cin>>v[i][j];
}
solve(v,1,1,'u');
int cnt = 0;
For(n*n){
cout << ans[i] <<' ';
cnt ++;
if(cnt % n == 0)cout << endl;
}
}
signed main ()
{//
fast()
int Tt = 1;
cin>>Tt;
while (Tt--){
Gojo();
// cout << endl ;
}
}Editor is loading...
Leave a Comment