#include <bits/stdc++.h>
using namespace std;
vector<vector<int>> create_map(int N, int M, vector<int> A, vector<int> B) {
int K = 2 * N; // Safe size
vector<vector<int>> grid(K, vector<int>(K, 0));
// Step 1: Assign 2x2 blocks for each country
int x = 0, y = 0;
for (int c = 1; c <= N; c++) {
for (int i = 0; i < 2; i++)
for (int j = 0; j < 2; j++)
grid[x + i][y + j] = c;
x += 3; // leave 1 row gap
if (x + 2 > K) { x = 0; y += 3; } // next column block
}
// Step 2: Add adjacencies
// For each pair (A,B), just find a border cell to connect
for (int i = 0; i < M; i++) {
int a = A[i], b = B[i];
bool placed = false;
for (int r = 0; r < K && !placed; r++) {
for (int c = 0; c < K && !placed; c++) {
if (grid[r][c] == a) {
// Try right
if (c+1 < K && grid[r][c+1] == 0) {
grid[r][c+1] = b;
placed = true;
}
// Try down
else if (r+1 < K && grid[r+1][c] == 0) {
grid[r+1][c] = b;
placed = true;
}
}
}
}
}
return grid;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |