Submission #1199464

#TimeUsernameProblemLanguageResultExecution timeMemory
1199464user149Mars (APIO22_mars)C++20
14 / 100
837 ms330828 KiB
#include<bits/stdc++.h>
#include "mars.h"
using namespace std;

using pii=pair<int,int>;

int N;
bool seen[50][50];
bool h[50][50];

void dfs(int i,int j){
	seen[i][j]=1;

	vector<pii> adjlist={{i,j-1},{i+1,j},{i-1,j},{i,j+1}};

	for(auto [a,b]:adjlist){
		if(a<0 || b<0 || a>N || b>N) continue;
		if(seen[a][b] || !h[a][b]) continue;

		dfs(a,b);
	}
}

string process(vector<vector<string>> a,int i,int j,int k,int n){
	string s;
	for(int row=0;row<=2;row++){
		s+=a[row][0][0];
		s+=a[row][1][0];
		for(int i=0;i<=2*k;i++){
			s+=a[row][2][i];
		}
	}
	for(int row=3;row<=2*k+2;row++){
		s+=a[2][0][(2*k+1)*(row-2)];
		s+=a[2][1][(2*k+1)*(row-2)];
		for(int i=0;i<=2*k;i++){
			s+=a[2][2][(2*k+1)*(row-2)+i];
		}
	}
	
	if(k==n-1){
		for(int i=0;i<=2*n;i++){
			for(int j=0;j<=2*n;j++){
				h[i][j]=bool(s[i*(2*n+1)+j]-'0');
			}
		}
		
		N=2*n;
		for(int i=0;i<=49;i++){
			for(int j=0;j<=49;j++) seen[i][j]=0;
		}

		int ans=0;
		for(int i=0;i<=2*n;i++){
			for(int j=0;j<=2*n;j++){
				if(!seen[i][j] && h[i][j]){
					dfs(i,j);
					ans++;
				}
			}
		}

		string ret;
		for(int j=0;j<=29;j++) ret+='0'+char(bool(ans&(1<<j)));
		for(int j=30;j<=99;j++) ret+='0';
		return ret;
	}


	while(s.size()!=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...