답안 #625090

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
625090 2022-08-09T10:23:40 Z QwertyPi 무지개나라 (APIO17_rainbow) C++14
0 / 100
2 ms 700 KB
#include "rainbow.h"
#include <bits/stdc++.h>

using namespace std;

bool a[51][51];

int dx[4] = {0, 0, 1, -1};
int dy[4] = {1, -1, 0, 0};

int dir[256];
int bx1, bx2, by1, by2;

void upd(int x, int y){
	bx1 = min(bx1, x);
	bx2 = max(bx2, x);
	by1 = min(by1, y);
	by2 = max(by2, y);
}

void init(int R, int C, int sr, int sc, int M, char *S) {
	dir['E'] = 0;
	dir['W'] = 1;
	dir['S'] = 2;
	dir['N'] = 3;
	a[sr][sc] = true;
	upd(sr, sc);
	for(int i = 0; i < M; i++){
		sr += dx[dir[S[i]]];
		sc += dy[dir[S[i]]];
		a[sr][sc] = true;
		upd(sr, sc);
	}
}

int colour(int ar, int ac, int br, int bc) {
	int x1 = ar, x2 = br, y1 = ac, y2 = bc;
	int V = 0, E = 0, SQ = 0;
	for(int i = x1; i <= x2; i++){
		for(int j = y1; j <= y2; j++){
			V += !a[i][j];
		}
	}
	for(int i = x1; i <= x2; i++){
		for(int j = y1; j < y2; j++){
			E += !a[i][j] && !a[i][j + 1];
		}
	}
	for(int i = x1; i < x2; i++){
		for(int j = y1; j <= y2; j++){
			E += !a[i + 1][j] && !a[i][j];
		}
	}
	for(int i = x1; i < x2; i++){
		for(int j = y1; j < y2; j++){
			SQ += !a[i][j] && !a[i + 1][j] && !a[i][j + 1] && !a[i + 1][j + 1];
		}
	}
    return V - E + SQ + (bx1 < x1 && x2 < bx2 && by1 < y1 && y2 < by2);
}

Compilation message

rainbow.cpp: In function 'void init(int, int, int, int, int, char*)':
rainbow.cpp:29:19: warning: array subscript has type 'char' [-Wchar-subscripts]
   29 |   sr += dx[dir[S[i]]];
      |                ~~~^
rainbow.cpp:30:19: warning: array subscript has type 'char' [-Wchar-subscripts]
   30 |   sc += dy[dir[S[i]]];
      |                ~~~^
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 304 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Runtime error 1 ms 700 KB Execution killed with signal 11
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -