Submission
Status:
--TTxxxxxx
Subtask/Task Score:
0/100
Score: 0
User: nik121416
Problemset: โชว์ของโลมา
Language: cpp
Time: 1.093 second
Submitted On: 2026-03-12 15:56:27
#include <bits/stdc++.h>
using namespace std;
int n ;
void p(vector<vector<int>> &adj){
for(int i = 0 ; i < n;i++){
for(int j = 0 ; j < n;j++){
cout << adj[i][j] << ' ';
}
cout << '\n';
}
cout << '\n';
}
void pp(vector<vector<bool>> &adj){
for(int i = 0 ; i < n;i++){
for(int j = 0 ; j < n;j++){
cout << adj[i][j] << ' ';
}
cout << '\n';
}
cout << '\n';
}
int main(){
cin >>n;
vector<vector<int>> adj(n,vector<int>(n,1));
vector<vector<bool>> vis(n,vector<bool>(n,false));
queue<pair<int,int>> q;
q.push({0,0});
vis[0][0] = true;
int num = 1;
while(!q.empty()){
int i = q.front().first;
int j = q.front().second;
q.pop();
for(int a = 0;a < n;a++){
if(j + 1 < n && vis[i][j+1] == false){
adj[i][j+1] = num +=1;
vis[i][j+1] = true;
j+=1;
}
}
p(adj);
pp(vis);
if(i + 1 < n && !vis[i+1][j])i+=1;
adj[i][j] = num+=1;
vis[i][j] = true;
for(int a = 0;a < n;a++){
if(j - 1 >= 0 && !vis[i][j-1]){
adj[i][j-1] = num+=1;
vis[i][j-1] = true;
j-=1;
}
}
p(adj);
pp(vis);
for(int a = 0;a < n;a++){
if(i+1 < n && !vis[i+1][j]){
adj[i+1][j] = num+=1;
vis[i+1][j] = true;
i+=1;
}
}
p(adj);
pp(vis);
if(j + 1 < n && !vis[i][j+1])j+=1;
adj[i][j] = num+=1;
vis[i][j] = true;
for(int a = 0;a < n;a++){
if(i-1 >=0 && !vis[i-1][j]){
adj[i-1][j] = num +=1;
vis[i-1][j] = true;
i-=1;
}
}
p(adj);
pp(vis);
for(int aa = 0 ;aa< n;aa++){
for(int bb = 0 ; bb< n;bb++){
if(!vis[aa][bb]){
q.push({aa,bb});
break;
}
}
if(!q.empty()){
break;
}
}
}
}