Submission #744732

#TimeUsernameProblemLanguageResultExecution timeMemory
744732TeemkaMars (APIO22_mars)C++17
14 / 100
19 ms2628 KiB

#include <bits/stdc++.h> 
#include "mars.h"

#define F first 
#define S second 

#define OK cout << "------OK---------" << endl;
#define deb(x) cout << #x << " = " << x << endl;

#define ll long long ;
using namespace std ;
const int N = 500 + 7;
const int INF = 1e9 + 7 ;
const int dx[4] = {0 , 1 , 0 , -1} , dy[4] = {1 , 0 , -1 , 0} ;
int used[N][N],  n ;

int pos(int I , int J ){
	return I * (2 * n + 1) + J ;
}

void dfs(int i ,int j , string res){
	used[i][j] = 1;
	for(int k = 0 ; k < 4; k++){
		int I = i + dx[k] , J = j + dy[k] ;
		if(I >= 0 and I <= 2 * n and J >= 0 and J <= 2 * n and used[I][J] == 0 and res[pos(I , J)] == '1')
			dfs(I , J , res );
	}
}
string calc(string res){
	int cnt = 0 ;
	for(int i = 0 ; i < 2 * n + 1 ; i++){
		for(int j = 0 ; j < 2 * n + 1 ; j++){
			used[i][j] = 0 ;
		}
	}
	for(int i = 0 ; i< 2 * n + 1 ; i++){
		for(int j = 0 ; j< 2 * n + 1;  j++){
			if(used[i][j] == 0 and res[pos(i , j)] == '1'){
				cnt++;
				dfs(i , j , res) ;
			}
		}
	}
	string bin ;
	while(cnt){
		bin += char(cnt % 2 + '0') ;
		cnt /= 2;
	}
	while(bin.size() < 100)
		bin += '0' ;
	return bin ;
}
string process(vector <vector<string>> a, int I, int J, int k, int mn){
	n = mn ;
	string res = string(100 , '0') ;
	if(k == 0){	
		for(int i = 0 ; i < 3;  i++){
			for(int j = 0 ; j< 3 ; j++){
				int I1 = I + i , J1 = J + j ;
				int id = pos(I1 , J1 ) ;
				char c = a[i][j][0] ;
				a[i][j] = string(100 , '0') ;
				a[i][j][id] = c;
			}
		}
	}
	for(int i = 0 ; i < 3;  i++){
		for(int j = 0 ; j< 3 ; j++){
			for(int k = 0 ; k < 100 ;k ++){
				if(a[i][j][k] != '0'){
					res[k] = a[i][j][k] ;
				}
			}
		}
	}
	if(k == n -1){
		res = calc(res) ;
	}
	return res ;
}
#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...