Untitled
unknown
plain_text
4 months ago
1.7 kB
2
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