-
[14500] 테트로미노BOJ 2022. 4. 22. 15:32
https://www.acmicpc.net/problem/14500
14500번: 테트로미노
폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변
www.acmicpc.net
일자형만 제외하면 3*2의 직사각형에서 2개만 제외하여 만들 수 있다.
일자형은 별도로 계산하고, 직사각형에서 2개씩 빼준 값을 업데이트 하는 방식으로 구현했다.
#include <bits/stdc++.h>using namespace std;#ifdef ONLINE_JUDGEconstexpr bool local = false;#elseconstexpr bool local = true;#endifusing ll = long long;using pi = pair<ll, ll>;int n, m, ans, a[505][505];void f(int c) { ans = max(c, ans); }int main(void) {if (!local) ios_base::sync_with_stdio(0), cin.tie(0);int i, j;cin >> n >> m;for (i = 0; i < n; i++)for (j = 0; j < m; j++) cin >> a[i][j];
for (i = 0; i < n; i++)for (j = 0; j + 3 < m; j++)f(a[i][j] + a[i][j + 1] + a[i][j + 2] + a[i][j + 3]);for (i = 0; i + 3 < n; i++)for (j = 0; j < m; j++)f(a[i][j] + a[i + 1][j] + a[i + 2][j] + a[i + 3][j]);
for (i = 0; i + 1 < n; i++) {for (j = 0; j + 2 < m; j++) {int sum = a[i][j] + a[i][j + 1] + a[i][j + 2] + a[i + 1][j] +a[i + 1][j + 1] + a[i + 1][j + 2];f(sum - a[i][j] - a[i + 1][j]);f(sum - a[i][j + 2] - a[i + 1][j + 2]);
f(sum - a[i][j] - a[i][j + 1]);f(sum - a[i + 1][j] - a[i + 1][j + 1]);f(sum - a[i][j + 1] - a[i][j + 2]);f(sum - a[i + 1][j + 1] - a[i + 1][j + 2]);
f(sum - a[i][j] - a[i + 1][j + 2]);f(sum - a[i + 1][j] - a[i][j + 2]);
f(sum - a[i][j] - a[i][j + 2]);f(sum - a[i + 1][j] - a[i + 1][j + 2]);}}
for (i = 0; i + 2 < n; i++) {for (j = 0; j + 1 < m; j++) {int sum = a[i][j] + a[i][j + 1] + a[i + 1][j] + a[i + 1][j + 1] +a[i + 2][j] + a[i + 2][j + 1];f(sum - a[i][j] - a[i][j + 1]);f(sum - a[i + 2][j] - a[i + 2][j + 1]);
f(sum - a[i][j] - a[i + 1][j]);f(sum - a[i][j + 1] - a[i + 1][j + 1]);f(sum - a[i + 1][j] - a[i + 2][j]);f(sum - a[i + 1][j + 1] - a[i + 2][j + 1]);
f(sum - a[i][j] - a[i + 2][j + 1]);f(sum - a[i][j + 1] - a[i + 2][j]);
f(sum - a[i][j] - a[i + 2][j]);f(sum - a[i][j + 1] - a[i + 2][j + 1]);}}cout << ans;return 0;}
'BOJ' 카테고리의 다른 글
[2784] 가로 세로 퍼즐 (0) 2022.04.27 [1107] 리모컨 (0) 2022.04.25 [3584] 가장 가까운 공통 조상 (0) 2022.04.15 [12789] 도키도키 간식드리미 (0) 2022.04.12 [3787] Count on Canton (0) 2022.04.09