Submission #1063935

#TimeUsernameProblemLanguageResultExecution timeMemory
106393512345678Mars (APIO22_mars)C++17
14 / 100
19 ms3880 KiB
#include "mars.h"
#include <bits/stdc++.h>

using namespace std;

int dx[]={1, 0, 0, -1}, dy[]={0, 1, -1, 0};

std::string process(std::vector <std::vector<std::string>> a, int _i, int _j, int _k, int n)
{
    vector<vector<int>> vs(3*n+10, vector<int> (3*n+10, 0)), mp(3*n+10, vector<int> (3*n+10, 0));
    for (int i=0; i<3; i++) 
    {
        for (int j=0; j<3; j++) 
        {
            for (int k=0; k<(2*n+1)*(2*n+1); k++) 
            {
                    mp[i+(k/(2*n+1))][j+(k%(2*n+1))]=a[i][j][k];
            }
        }
    }
    if (_k!=n-1)
    {
        string res(100, '0'); 
        for (int i=0; i<2*n+1; i++) for (int j=0; j<2*n+1; j++) res[(2*n+1)*i+j]=mp[i][j];
        //cout<<res<<'\n';
        return res;
    }
    /*
    for (int i=0; i<5; i++) 
    {
        for (int j=0; j<5;j ++) cout<<mp[i][j]-'0'<<' ';
        cout<<'\n';
    }*/
    int cnt=0;
    for (int i=0; i<2*n+1; i++)
    {
        for (int j=0; j<2*n+1; j++)
        {
            if (!vs[i][j]&&mp[i][j]=='1')
            {
                queue<pair<int, int>> q;
                vs[i][j]=1;
                q.push({i, j});
                cnt++;
                while (!q.empty())
                {
                    auto [x, y]=q.front();
                    q.pop();
                    for (int dr=0; dr<4; dr++)
                    {
                        int cx=x+dx[dr], cy=y+dy[dr];
                        if (cx<0||cx>2*n||cy<0||cy>2*n||vs[cx][cy]||mp[cx][cy]=='0') continue;
                        vs[cx][cy]=1;
                        q.push({cx, cy});
                    }
                }
            }
        }
    }
    string res(100, '0');
    for (int i=0; i<10; i++) if (cnt&(1<<i)) res[i]='1';
    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...