Submission #739125

#TimeUsernameProblemLanguageResultExecution timeMemory
739125PixelCatMars (APIO22_mars)C++17
14 / 100
16 ms2236 KiB
#include "mars.h"
#ifdef NYAOWO
#include "grader.cpp"
#endif

#include <bits/stdc++.h>
#define For(i, a, b) for(int i = a; i <= b; i++)
#define Forr(i, a, b) for(int i = a; i >= b; i--)
#define F first
#define S second
#define sz(x) ((int)x.size())
#define all(x) x.begin(), x.end()
#define eb emplace_back
using namespace std;
using LL = long long;
using pii = pair<int, int>;

int solve(string s, int len) {
    vector<vector<char>> g(len, vector<char>(len));
    For(i, 0, len - 1) For(j, 0, len - 1) {
        g[i][j] = s[i * len + j];
    }
    int cnt_cc = 0;
    const int dx[4] = {0, 0, 1, -1};
    const int dy[4] = {1, -1, 0, 0};
    For(i, 0, len - 1) For(j, 0, len - 1) if(g[i][j] == '1') {
        cnt_cc++;
        queue<pii> que;
        g[i][j] = '0';
        que.emplace(i, j);
        while(!que.empty()) {
            int x, y; tie(x, y) = que.front(); que.pop();
            For(it, 0, 3) {
                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';
                que.emplace(nx, ny);
            }
        }
    }
    return cnt_cc;
}

string process(vector<vector<string>> a, int I, int J, int k, int n) {
    int len = k * 2 + 3;
    string res;
    For(i, 0, 99) res.push_back('0');
    int l2 = k * 2 + 1;
    For(i, 0, 2) For(j, 0, 2) {
        For(i2, 0, l2 - 1) For(j2, 0, l2 - 1) {
            res[(i + i2) * len + (j + j2)] = a[i][j][i2 * l2 + j2];
        }
    }
    if(k == n - 1) {
        int ans = solve(res, len);
        For(i, 0, 99) res[i] = '0';
        For(i, 0, 10) 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...