Submission #744540

#TimeUsernameProblemLanguageResultExecution timeMemory
744540amirhoseinfar1385Mars (APIO22_mars)C++17
14 / 100
20 ms2192 KiB
#include "mars.h"
#include<bits/stdc++.h>
using namespace std;
vector<vector<char>>now,vis;

void dfs(int i,int j,int n){
	if(i<0||j<0||i>n*2+1||j>n*2+1||now[i][j]==0||vis[i][j]==1){
		return ;
	}
	//cout<<i<<" "<<j<<"\n";
	vis[i][j]=1;
	dfs(i+1,j,n);
	dfs(i,j+1,n);
	dfs(i-1,j,n);
	dfs(i,j-1,n);
}

string process(vector<vector<string>> a, int ii, int jj, int k, int n)
{
	if(n>4){
		return string(100 ,'0');
	}
	string ret(100,'0');
	if(k==0){
		for(int i=0;i<3;i++){
			for(int j=0;j<3;j++){
				if(a[i][j][0]=='1'){
					ret[(ii+i)*(n*2+1)+jj+j]='1';
				}
			}
		}
	}
	else{
	for(int i=0;i<3;i++){
		for(int j=0;j<3;j++){
			for(int h=0;h<100;h++){
				if(ret[h]=='0'){
					if(a[i][j][h]=='1'){
						ret[h]='1';
					}
				}
			}
		}
	}
	}
	//cout<<k<<" "<<n<<endl;
	if(k==n-1){
	//	for(int i=0;i<26;i++){
	//		cout<<ret[i]<<" ";
	//	}
	//	cout<<"\n";
		now.resize(n*2+2,vector<char>(n*2+2));
		vis.resize(n*2+2,vector<char>(2*n+2));
		int cnt=0;
		for(int i=0;i<100;i++){
			if(ret[i]=='1'){
				now[i/(n*2+1)][i%(n*2+1)]=1;
			}
		}
		for(int i=0;i<n*2+1;i++){
			for(int j=0;j<n*2+1;j++){
				if(vis[i][j]==0&&now[i][j]==1){
					cnt++;
					dfs(i,j,n);
				}
			}
		}
		now.clear();
		vis.clear();
		ret.clear();
		while(cnt>0){
			if(cnt&1){
				ret.push_back('1');
			}
			else{
				ret.push_back('0');
			}
			cnt/=2;
		}
		while(ret.size()<100){
			ret.push_back('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...