This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "mars.h"
#include<bits/stdc++.h>
using namespace std;
bitset<29> grid[29];
void flod(int i,int j){
if(i<0||i>8||j<0||j>8)return;
if(!grid[i][j]) return;
grid[i][j]=0;
flod(i-1,j);
flod(i+1,j);
flod(i,j+1);
flod(i,j-1);
}
string howmanyislands(int n){
int ans=0;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
ans+=grid[i][j],flod(i,j);
string str;
for(int i=0;i<100;i++)
str+=48+(ans&1),ans>>=1;
return str;
}
int turn[42][42];
string encode_grid(int i,int j){
string str;
for(int I=0;I<10;I++)
for(int J=0;J<10;J++)
str+=48+grid[i+I][j+J];
return str;
}
void putintogrid(string a,int i,int j){
int CC=0;
for(int I=0;I<10;I++) for(int J=0;J<10;J++)
grid[i+I][j+J]=grid[i+I][j+J]|a[CC++]=='1';
}
std::string process(std::vector <std::vector<std::string>> a, int i, int j, int k, int n) {
for(int i=0;i<2*n+1;i++)
grid[i].reset();
if(i&1||j&1) return a[0][0];
if(max(i,j)==2*n-2*k-2) {
grid[i][j]=a[0][0][0]=='1';
grid[i+1][j]=a[1][0][0]=='1';
grid[i][j+1]=a[0][1][0]=='1';
grid[i+1][j+1]=a[1][1][0]=='1';
grid[i+2][j+1]=a[2][1][0]=='1';
grid[i+1][j+2]=a[1][2][0]=='1';
putintogrid(a[2][0],i+2,j);
putintogrid(a[2][2],i+2,j+2);
putintogrid(a[0][2],i,j+2);
} else return a[0][0];
if(k==n-1)
return howmanyislands(2*n+1);
return encode_grid(i,j);
}
Compilation message (stderr)
mars.cpp: In function 'void putintogrid(std::string, int, int)':
mars.cpp:35:46: warning: suggest parentheses around comparison in operand of '|' [-Wparentheses]
35 | grid[i+I][j+J]=grid[i+I][j+J]|a[CC++]=='1';
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |