제출 #367991

#제출 시각아이디문제언어결과실행 시간메모리
367991parsabahrami무지개나라 (APIO17_rainbow)C++17
11 / 100
19 ms1132 KiB
#include "rainbow.h" #include <bits/stdc++.h> using namespace std; typedef long long int ll; typedef pair<int, int> pii; #define SZ(x) (int) (x).size() #define F first #define S second const int N = 55; int lx, ly, rx, ry, A[N][N], M[N][N], n, m; int dx[] = {1, 0, -1, 0}, dy[] = {0, 1, 0, -1}; void DFS(int x, int y) { if (A[x][y]) return; M[x][y] = 1; for (int i = 0; i < 4; i++) { int nx = dx[i] + x, ny = dy[i] + y; if (nx < lx || nx > rx || ny < ly || ny > ry || A[nx][ny] || M[nx][ny]) continue; DFS(nx, ny); } } void init(int R, int C, int sr, int sc, int M, char *S) { n = R, m = C; A[sr][sc] = 1; for (int i = 0; i < M; i++) { char c = S[i]; int d = 0; if (c == 'N') d = 2; if (c == 'W') d = 3; if (c == 'E') d = 1; if (c == 'S') d = 0; sr += dx[d], sc += dy[d]; A[sr][sc] = 1; } } int colour(int ar, int ac, int br, int bc) { int ret = 0; lx = ar, ly = ac, rx = br, ry = bc; for (int i = ac; i <= bc; i++) { for (int j = ar; j <= br; j++) { if (!M[j][i] && !A[j][i]) DFS(j, i), ret++; } } for (int i = ac; i <= bc; i++) for (int j = ar; j <= br; j++) M[j][i] = 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...