제출 #743285

#제출 시각아이디문제언어결과실행 시간메모리
743285vjudge1무지개나라 (APIO17_rainbow)C++17
11 / 100
20 ms852 KiB
#include <bits/stdc++.h> #include "rainbow.h" using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef pair<ll, ll> pll; #define ent "\n" const int maxn = 1e6 + 100; const ll INF = (1ll<<61); const int MOD = 1e9 + 7; const int inf = (1<<30); const int maxl = 20; const int P = 31; int n, m; int used[55][55]; int u[55][55]; int dx[] = {1, 0, -1, 0}; int dy[] = {0, 1, 0, -1}; void dfs(int x, int y, int l1, int r1, int l2, int r2){ if(used[x][y] || u[x][y] || x < l1 || x > r1 || y < l2 || y > r2) return; u[x][y] = 1; for(int i = 0; i < 4; i++){ dfs(x + dx[i], y + dy[i], l1, r1, l2, r2); } } void init(int r, int c, int x, int y, int p, char s[]){ n = r; m = c; used[x][y] = 1; for(int i = 0; i < p; i++){ if(s[i] == 'N') x--; else if(s[i] == 'W') y--; else if(s[i] == 'E') y++; else x++; used[x][y] = 1; } } int colour(int l1, int l2, int r1, int r2){ for(int i = l1; i <= r1; i++){ fill(u[i] + l2, u[i] + r2 + 1, 0); } int ans = 0; for(int i = l1; i <= r1; i++){ for(int j = l2; j <= r2; j++){ if(!used[i][j] && !u[i][j]) dfs(i, j, l1, r1, l2, r2), ans++; } } return ans; }
#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...