제출 #545812

#제출 시각아이디문제언어결과실행 시간메모리
545812Monarchuwu무지개나라 (APIO17_rainbow)C++17
11 / 100
52 ms2228 KiB
#include<iostream> #include<algorithm> // #include "rainbow.h" using namespace std; typedef long long ll; typedef pair<int, int> pii; #define ff first #define ss second const int N = 2e5 + 8; const int dr[4] = { 0, 0, 1, -1 }; const int dc[4] = { 1, -1, 0, 0 }; int r, c, m, q, sr, sc; int num[256]; string s; namespace subtask1 { bool vis_init[52][52], vis[52][52]; void init() { vis_init[sr][sc] = true; for (char c : s) { sr += dr[num[c]]; sc += dc[num[c]]; vis_init[sr][sc] = true; } } void dfs(int i, int j) { vis[i][j] = true; for (int k = 0, i2, j2; k < 4; ++k) { i2 = i + dr[k], j2 = j + dc[k]; if (!vis[i2][j2]) dfs(i2, j2); } } int solve(int ar, int ac, int br, int bc) { int m = br - ar + 1, n = bc - ac + 1; for (int i = 1; i <= m; ++i) vis[i][0] = vis[i][n + 1] = true; for (int j = 1; j <= n; ++j) vis[0][j] = vis[m + 1][j] = true; for (int i = 1; i <= m; ++i) for (int j = 1; j <= n; ++j) vis[i][j] = vis_init[i + ar - 1][j + ac - 1]; int cnt(0); for (int i = 1; i <= m; ++i) for (int j = 1; j <= n; ++j) if (!vis[i][j]) dfs(i, j), ++cnt; return cnt; } } void init(int R, int C, int SR, int SC, int M, char *S) { num['E'] = 0, num['W'] = 1, num['S'] = 2, num['N'] = 3; r = R, c = C, sr = SR, sc = SC, m = M; for (int i = 0; i < m; ++i) s.push_back(S[i]); if (r <= 50 && c <= 50) subtask1::init(); } int colour(int ar, int ac, int br, int bc) { if (r <= 50 && c <= 50) return subtask1::solve(ar, ac, br, bc); return 0; } /** /\_/\ * (= ._.) * / >0 \>1 **/

컴파일 시 표준 에러 (stderr) 메시지

rainbow.cpp: In function 'void subtask1::init()':
rainbow.cpp:23:26: warning: array subscript has type 'char' [-Wchar-subscripts]
   23 |             sr += dr[num[c]];
      |                          ^
rainbow.cpp:24:26: warning: array subscript has type 'char' [-Wchar-subscripts]
   24 |             sc += dc[num[c]];
      |                          ^
#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...