Submission #718410

#TimeUsernameProblemLanguageResultExecution timeMemory
718410lamMars (APIO22_mars)C++17
36 / 100
216 ms3144 KiB
#include "mars.h" #include <bits/stdc++.h> using namespace std; typedef pair<int,int> ii; #define ff first #define ss second const int maxn = 110; int n,m; bool A[maxn][maxn]; bool dau[maxn][maxn]; int dx[4]={0,1,0,-1}; int dy[4]={1,0,-1,0}; bool in(int x, int y) { if (x<0||x>=m||y<0||y>=m) return 0; return A[x][y]; } void dfs(int x, int y) { dau[x][y]=1; // cerr<<"vis "<<x<<' '<<y<<endl; for (int c=0; c<4; c++) { int xx=x+dx[c]; int yy=y+dy[c]; if (in(xx,yy)&&!dau[xx][yy]) dfs(xx,yy); } } std::string process(std::vector <std::vector<std::string>> a, int i, int j, int k, int N) { n=N; m=2*n+1; map<ii,bool> mp; if (k!=n-1) { for (int i=0; i<3; i+=2) for (int j=0; j<3; j+=2) { int cnt=0; for (int i2=0; i2<=k; i2++) for (int j2=0; j2<=k; j2++) mp[{i+i2*2,j+j2*2}] = (a[i][j][cnt++]=='1'); } string S=""; for (int i=0; i<=k+1; i++) for (int j=0; j<=k+1; j++) if (mp[{2*i,2*j}]==1) S+='1'; else S+='0'; while (S.length()<100) S+='0'; return S; } for (int i=0; i<3; i++) for (int j=0; j<3; j++) { int cnt=0; for (int i2=0; i2<=k; i2++) for (int j2=0; j2<=k; j2++) mp[{i+i2*2,j+j2*2}] = (a[i][j][cnt++]=='1'); } for (int i=0; i<m; i++) for (int j=0; j<m; j++) A[i][j] = mp[{i,j}]; // for (int i=0; i<m; i++) // { // for (int j=0; j<m; j++)cerr<<A[i][j]<<' '; // cerr<<endl; // } int ans = 0; for (int i=0; i<m; i++) for (int j=0; j<m; j++) dau[i][j]=0; for (int i=0; i<m; i++) for (int j=0; j<m; j++) if (!dau[i][j]&&A[i][j]==1) dfs(i,j), ans++; string S=""; while (ans>0) { if (ans&1) S+='1'; else S+='0'; ans/=2; } while (S.length()<100) S+='0'; return S; }
#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...