제출 #57272

#제출 시각아이디문제언어결과실행 시간메모리
57272MatheusLealV무지개나라 (APIO17_rainbow)C++17
11 / 100
22 ms1172 KiB
#include "rainbow.h" #include <bits/stdc++.h> #define N 55 #define f first #define s second using namespace std; typedef pair<int, int> pii; int n, m, ok[N][N], block[N][N]; int dx[4] = {1, -1, 0, 0}, dy[4] = {0, 0, 1, -1}; int Ni, Mi, Nii, Mii; int dxy(char c) { if(c == 'N') return 1; if(c == 'S') return 0; if(c == 'W') return 3; return 2; } void dfs(int x, int y) { ok[x][y] = 1; //cout<<"DFS "<<x<<" "<<y<<"\n"; for(int i = 0; i < 4; i++) { int a = x + dx[i], b = y + dy[i]; if(a < Ni or b < Mi or a > Nii or b > Mii or ok[a][b] == 1 or block[a][b]) continue; ok[a][b] = 1; dfs(a, b); } } void init(int R, int C, int sr, int sc, int M, char *S) { int x = sr, y = sc; string s; block[x][y] = 1; for(int i = 0; i < M; i++) s.push_back(S[i]); for(int i = 0; i < s.size(); i++) { block[x][y] = 1; //cout<<x<<" "<<y<<"\n"; int id = dxy(s[i]); x = x + dx[id], y = y + dy[id]; block[x][y] = 1; //cout<<"BLOCK "<<x<<" "<<y<<"\n"; } } int colour(int ar, int ac, int br, int bc) { int cnt = 0; memset(ok, 0, sizeof ok); Nii = br, Ni = ar, Mi = ac, Mii = bc; for(int x = ar; x <= br; x++) { for(int y = ac; y <= bc; y++) { if(ok[x][y] or block[x][y]) continue; cnt ++; ok[x][y] = 1; dfs(x, y); } } return cnt; }

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

rainbow.cpp: In function 'void init(int, int, int, int, int, char*)':
rainbow.cpp:54:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i = 0; i < s.size(); i++)
                 ~~^~~~~~~~~~
#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...