Submission #1063801

#TimeUsernameProblemLanguageResultExecution timeMemory
106380112345678Mars (APIO22_mars)C++17
6 / 100
8 ms2916 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(2*n+1, vector<int> (2*n+1, 0)), mp(2*n+1, vector<int> (2*n+1, 0)); if (n==1) for (int i=0; i<2*n+1; i++) for (int j=0; j<2*n+1; j++) mp[i][j]=a[i][j][0]-'0'; else { if (_k==0) { string res(100, '0'); for (int i=0; i<3; i++) for (int j=0; j<3; j++) res[3*i+j]=a[i][j][0]; return res; } else { for (int i=0; i<3; i++) for (int j=0; j<3; j++) for (int x=0; x<3; x++) for (int y=0; y<3; y++) mp[i+x][j+y]=a[i][j][3*x+y]-'0'; } } 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]) { 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]) 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...