제출 #1347352

#제출 시각아이디문제언어결과실행 시간메모리
1347352weedywelon화성 (APIO22_mars)C++20
0 / 100
0 ms3292 KiB
#include <cstdio>
#include <cstdlib>
#include <vector>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <iostream>
#include <iomanip>
#include <limits.h>
#include <set>
#include <string>
#include <queue>
#include <stack>
#include <unordered_map>
#include <unordered_set>
#include <deque>
#include <map>
#include <chrono>
#include <random>
#include <bitset>
#include <tuple>
#include "mars.h"
#define SZ(x) (LL)(x.size())
#define FR(i,a,b) for(LL i=(a);i<(b);++i)
#define FOR(i,n) FR(i,0,n)
#define FAST ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define A first
#define B second
#define mp(a,b) make_pair(a,b)
typedef long long LL;
typedef long double LD;
typedef unsigned long long ULL;
typedef unsigned __int128 U128;
typedef __int128 I128;
typedef std::pair<int,int> PII;
typedef std::pair<LL,LL> PLL;
using namespace std;

int grid[8][8];
bool vis[8][8];
PLL d[4]={mp(0,1), mp(0,-1), mp(1,0), mp(-1,0)};

void bfs(int i, int j, int n){
	queue<PII> q;
	vis[i][j]=true;
	q.push(mp(i,j));
	
	while (!q.empty()){
		int ci=q.front().A, cj=q.front().B;
		q.pop();
		
		FOR(xx,4){
			int ni=ci+d[xx].A, nj=cj+d[xx].B;
			if (!vis[ni][nj] && min(ni,nj)>=0 && max(ni,nj)<2*n+1 && grid[ni][nj]==1){
				vis[ni][nj]=true;
				q.push(mp(ni,nj));
			}
		}
	}
}

std::string process(std::vector <std::vector<std::string> > a, int i, int j, int k, int n){
	if (k<n-1){
		//overwrite h[i][j]
		string s=string(100,'0');
		FOR(i1,3) FOR(j1,3){
			if (a[i1][j1][0]=='1'){
				int id=i1*10+j1;
				s[id]='1';
			}
		}
		return s;
	}
	if (k==n-1){
		string s=a[0][0];
		FOR(i1,3) FOR(j1,3){
			FOR(id,100) if (a[i1][j1][id]=='1') s[id]='1';
		}
		
		FOR(id,100){
			if (s[id]=='1'){
				int i1=id/10, j1=id%10;
				grid[i1][j1]=1;
			}
		}
		
		int ans=0;
		FOR(i1,2*n+1) FOR(j1,2*n+1){
			if (!vis[i1][j1]) bfs(i1,j1,n);
		}
		
		string res=string(100,'0');
		FOR(ii,100){
			if (ans&(1<<ii)) res[ii]='1';
		}
		return res;
	}
	return "poo";
}
#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...