Submission #1369555

#TimeUsernameProblemLanguageResultExecution timeMemory
1369555sameer세계 지도 (IOI25_worldmap)C++20
86 / 100
29 ms5720 KiB

#include <bits/stdc++.h>
using namespace std;

vector<int> v[41]; 
vector<vector<int>> va2;
int i, j, d, n, m, va[125][125];
bool c, ch[41], cn[41][41];

void dfs(int cu, int pa){
 ch[cu] = 1;
 if(c == 0){
 for( j = 2; j <= 2*n; j+=2) va[d][j] = cu;
 
 for( j = 1; j <= 2*n; j+=2){
 va[d-1][j] = cu; va[d+1][j] = cu;
 if(cn[cu][j/2+1]) va[d][j] = j/2+1;
 } cout << '\n';
 }
 else{
 for( j = 1; j <= 2*n+1; j+=2) va[d][j] = cu;
 for( j = 2; j <= 2*n; j+=2){
 va[d-1][j] = cu; va[d+1][j] = cu;
 if(cn[cu][j/2]) va[d][j] = j/2;
 }
 } 
 
 c = 1-c; d += 2;

 for(int z: v[cu]){
 if(ch[z] == 1) continue;
 dfs(z, cu);
 if(c == 0){
 for( j = 2; j <= 2*n; j+=2) va[d][j] = cu;
 for( j = 1; j <= 2*n; j+=2) va[d-1][j] = cu;
 }
 else{
 for( j = 1; j <= 2*n; j+=2) va[d][j] = cu;
 for( j = 2; j <= 2*n; j+=2) va[d-1][j] = cu;
 }
 d++;
 }
}

std::vector<std::vector<int>> create_map(int N, int M, std::vector<int> A, std::vector<int> B) {
 n = N; m = M;
 for( i = 1; i <= n; i++){ ch[i] = 0;
 for( j = 1; j <= n; j++) cn[i][j] = 0;
 }
 for( i = 0; i < m; i++) v[A[i]].push_back(B[i]), v[B[i]].push_back(A[i]), cn[A[i]][B[i]] = 1, cn[B[i]][A[i]] = 1;
 va2.resize(3*n); 
 for( i = 0; i < 3*n; i++) va2[i].resize(3*n);

 for( i = 1; i <= 3*n; i++){
 for( j = 1; j <= 3*n; j++) va[i][j] = 0;
 }
 d = 1; c = 0; dfs(1, -1);
 for( i = 1; i <= 3*n; i++){
 for( j = 1; j <= 3*n; j++) if(va[i][j] == 0) va[i][j] = va[i][j-1];
 }
 for( j = 1; j <= 3*n; j++){
 for( i = 1; i <= 3*n; i++) if(va[i][j] == 0) va[i][j] = va[i-1][j];
 }
 
 for( j = 1; j <= 3*n; j++){
 for( i = 1; i <= 3*n; i++) va2[i-1][j-1] = va[i][j];
 }
 for( i = 1; i <= n; i++) v[i].clear();
 return va2;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...