Submission #741917

#TimeUsernameProblemLanguageResultExecution timeMemory
741917vjudge1Mars (APIO22_mars)C++17
14 / 100
17 ms2224 KiB
#include "mars.h" #include <bits/stdc++.h> #define For(i, a, b) for(int i = a; i < b; i++) #define F first #define S second using namespace std; int solve(string s, int len) { vector<vector<char>> g(len, vector<char>(len)); For(i, 0, len) For(j, 0, len) { g[i][j] = s[i * len + j]; } int cnt = 0; const int dx[4] = {0, 0, 1, -1}; const int dy[4] = {1, -1, 0, 0}; For(i, 0, len) For(j, 0, len) if(g[i][j] == '1') { cnt++; queue<pair<int, int>> q; g[i][j] = '0'; q.push({i, j}); while(!q.empty()) { int x, y; tie(x, y) = q.front(); q.pop(); For(it, 0, 4) { int nx = x + dx[it]; int ny = y + dy[it]; if(nx < 0 || ny < 0 || nx >= len || ny >= len) continue; if(g[nx][ny] != '1') continue; g[nx][ny] = '0'; q.push({nx, ny}); } } } return cnt; } string process(vector<vector<string>> a, int I, int J, int k, int n) { int len = k * 2 + 3; string res; For(i, 0, 100) res.push_back('0'); int l2 = k * 2 + 1; For(i, 0, 3) For(j, 0, 3) { For(i2, 0, l2) For(j2, 0, l2) { res[(i + i2) * len + (j + j2)] = a[i][j][i2 * l2 + j2]; } } if(k == n - 1) { int ans = solve(res, len); For(i, 0, 100) res[i] = '0'; For(i, 0, 11) res[i] = (char)('0' + ((ans & (1 << i)) != 0)); } return res; }
#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...