제출 #741917

#제출 시각아이디문제언어결과실행 시간메모리
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...