답안 #162089

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
162089 2019-11-06T10:21:19 Z Minnakhmetov 무지개나라 (APIO17_rainbow) C++14
0 / 100
8 ms 568 KB
#include "rainbow.h"
#include <bits/stdc++.h>

using namespace std;

#define all(aaa) aaa.begin(), aaa.end()

string dir = "NSEW";
const int dx[4] = {-1, 1, 0, 0},
		  dy[4] = {0, 0, 1, -1};

const int N = 52, INF = 1e9;
int a[N][N];
int r, c;
int mnx = INF, mxx = -1,
	mny = INF, mxy = -1;

void init(int R, int C, int sr, int sc, int M, char *S) {
	r = R;
	c = C;

	a[sr][sc] = 1;

	int x = sr, y = sc;
	for (int i = 0; i < M; i++) {
		int k = find(all(dir), S[i]) - dir.begin();
		x += dx[k];
		y += dy[k];
		a[x][y] = 1;

		mnx = min(mnx, x);
		mxx = max(mxx, x);
		mny = min(mny, y);
		mxy = max(mxy, y);
	}
}

int colour(int ar, int ac, int br, int bc) {
	int ans = 1;

	if (ar < mnx && mxx < br &&
		ac < mny && mxy < bc) {
		ans++;
	}

	// count of edges
	for (int i = ar; i <= br; i++) {
		for (int j = ac; j <= bc; j++) {
			ans += a[i][j] * 4;
		}
	}

	for (int i = ar; i < br; i++)  {
		for (int j = ac; j <= bc; j++) {
			ans -= (a[i + 1][j] && a[i][j]);
		}
	}

	for (int i = ar; i <= br; i++) {
		for (int j = ac; j < bc; j++) {
			ans -= (a[i][j] && a[i][j + 1]);
		}
	}

	for (int i = ar; i <= br; i++) {
		ans += 2 - a[i][ac] - a[i][bc];
	}

	for (int i = ac; i <= bc; i++) {
		ans += 2 - a[ar][i] - a[br][i];
	}

	// count of vertices
	for (int i = ar; i < br; i++) {
		for (int j = ac; j < bc; j++) {
			if (a[i][j] || a[i + 1][j] 
				|| a[i][j + 1] || a[i + 1][j + 1])
				ans--;
		}
	}

	ans -= (br - ar + bc - ac + 2) * 2;

	// count of useless faces

	for (int i = ar; i <= br; i++) {
		for (int j = ac; j <= bc; j++) {
			ans -= a[i][j];
		}
	}

	return ans;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 380 KB Output is correct
2 Correct 6 ms 504 KB Output is correct
3 Correct 8 ms 376 KB Output is correct
4 Correct 8 ms 392 KB Output is correct
5 Correct 6 ms 568 KB Output is correct
6 Correct 2 ms 372 KB Output is correct
7 Incorrect 3 ms 404 KB Output isn't correct
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 256 KB Output is correct
2 Incorrect 2 ms 376 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 256 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 380 KB Output is correct
2 Correct 6 ms 504 KB Output is correct
3 Correct 8 ms 376 KB Output is correct
4 Correct 8 ms 392 KB Output is correct
5 Correct 6 ms 568 KB Output is correct
6 Correct 2 ms 372 KB Output is correct
7 Incorrect 3 ms 404 KB Output isn't correct
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 380 KB Output is correct
2 Correct 6 ms 504 KB Output is correct
3 Correct 8 ms 376 KB Output is correct
4 Correct 8 ms 392 KB Output is correct
5 Correct 6 ms 568 KB Output is correct
6 Correct 2 ms 372 KB Output is correct
7 Incorrect 3 ms 404 KB Output isn't correct
8 Halted 0 ms 0 KB -