Submission #1063964

#TimeUsernameProblemLanguageResultExecution timeMemory
1063964thinknoexitMars (APIO22_mars)C++17
0 / 100
1 ms332 KiB
#include "mars.h" #include<bits/stdc++.h> using namespace std; using ll = long long; int di[4] = { 1, 0, -1, 0 }, dj[4] = { 0, 1, 0, -1 }; // n <= 2 string count_island(int n, vector<string> v) { vector<vector<bool>> vis(n, vector<bool>(n, false)); function<void(int, int)> dfs; dfs = [&](int i, int j) { vis[i][j] = 1; for (int k = 0;k < 4;k++) { int ii = i + di[k], jj = j + dj[k]; if (ii < 0 || jj < 0 || ii >= n || jj >= n) continue; if (vis[ii][jj] || v[ii][jj] == '0') continue; dfs(ii, jj); } }; int cnt = 0; for (int i = 0;i < n;i++) { for (int j = 0;j < n;j++) { if (!vis[i][j] && v[i][j] == '1') { cnt++; dfs(i, j); } } } string s = string(100, '0'); for (int j = 0;j < 10;j++) { s[j] = ((cnt >> j) & 1) + '0'; } return s; } string process(vector<vector<string>> a, int i, int j, int k, int n) { if (n == 1) { vector<string> v(3, string(3, '0')); for (int i = 0;i < 3;i++) { for (int j = 0;j < 3;j++) { v[i][j] = a[i][j][0]; } } return count_island(2 * n + 1, v); } if (k == 0) { string s = string(100, '0'); for (int i = 0;i < 3;i++) { for (int j = 0;j < 3;j++) { s[i * 3 + j] = a[i][j][0]; } } return s; } if (i + 2 * k + 2 >= n || j + 2 * k + 2 >= n) return string(100, '0'); vector<string> v(2 * n + 1, string(2 * n + 1, '0')); // a[0][0], a[0][2], a[2][0], a[2][2] for (int i = 0;i < 2 * k + 1;i++) { for (int j = 0;j < 2 * k + 1;j++) { v[i][j] = a[0][0][i * (2 * k + 1) + j]; v[2 + i][j] = a[2][0][i * (2 * k + 1) + j]; v[i][2 + j] = a[0][2][i * (2 * k + 1) + j]; v[2 + i][2 + j] = a[2][2][i * (2 * k + 1) + j]; } } if (k == n - 1) return count_island(2 * n + 1, v); string s = string(100, '0'); for (int i = 0;i < 2 * k + 1;i++) for (int j = 0;j < 2 * k + 1;j++) { s[i * (2 * k + 1) + j] = v[i][j]; } return s; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...