Submission #586303

#TimeUsernameProblemLanguageResultExecution timeMemory
586303jamezzzMars (APIO22_mars)C++17
14 / 100
1522 ms278528 KiB
#include "mars.h" #include <bits/stdc++.h> using namespace std; int dx[4]={0,1,0,-1},dy[4]={1,0,-1,0}; string process(vector<vector<string>> a,int i,int j,int k,int n){ ++k; vector<vector<char>> grid; grid.resize(2*k+1); for(int i=0;i<2*k+1;++i){ grid[i].resize(2*k+1); } for(int i=0;i<3;++i){ for(int j=0;j<3;++j){ for(int l=0;l<(2*k-1)*(2*k-1);++l){ int r=l/(2*k-1),c=l%(2*k-1); grid[r+i][c+j]=a[i][j][l]; } } } /* for(int i=0;i<2*k+1;++i){ for(int j=0;j<2*k+1;++j){ printf("%c",grid[i][j]); } printf("\n"); } */ if(n==k){ vector<vector<int>> vis; vis.resize(2*k+1); for(int i=0;i<2*k+1;++i){ vis[i].resize(2*k+1,0); } int ans=0; queue<pair<int,int>> q; for(int i=0;i<2*k+1;++i){ for(int j=0;j<2*k+1;++j){ if(grid[i][j]=='1'&&!vis[i][j]){ ++ans; q.push({i,j}); while(!q.empty()){ auto[x,y]=q.front(); q.pop(); for(int i=0;i<4;++i){ int nx=x+dx[i],ny=y+dy[i]; if(nx<0||ny<0||nx>=2*k+1||ny>=2*k+1)continue; if(grid[nx][ny]!='1')continue; if(vis[nx][ny])continue; vis[nx][ny]=true; q.push({nx,ny}); } } } } } string ret=""; for(int i=0;i<100;++i){ if(i<=30&&((1<<i)&ans)!=0){ ret+='1'; } else ret+='0'; } return ret; } else{ string ret=""; for(int i=0;i<2*k+1;++i){ for(int j=0;j<2*k+1;++j){ ret+=grid[i][j]; } } while(ret.length()!=100)ret+='0'; return ret; } }
#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...