티스토리 뷰
백준 :: BOJ :: 17779 :: 게리맨더링 2
출처 : https://www.acmicpc.net/problem/17779
#include <bits/stdc++.h>
using namespace std;
#define F(p,q,r) for(int p=q; p<r; p++)
int N, A[20][20], s, t, ans = 1e5, v, D[4][2] = { {0,-1},{1,0},{0,1},{-1,0} };
int main() {
cin >> N;
F(i, 0, N) {
F(j, 0, N) {
cin >> A[i][j]; s += A[i][j];
}
}
F(i, 0, N - 2) {
F(j, 1, N - 1) {
F(n1, 1, j + 1) {
F(n2, 1, N-j) {
if (i + n1 + n2 >= N) break;
t = s; int B[5] = { 0, }, ma = 0, mi = 1e5,
C[4][6] = { {0,i+n1,i,0,j+1,N},{0,i+n2+1,i+1,j+1,N,N},
{i+n1,N,0,0,j-n1-1,i+n1+n2+1},{i+n2+1,N,0,j+n2+1,N,i+n1+n2+2} };
F(k, 0, 4) {
v = 0; F(y, C[k][0], C[k][1]) {
if (y >= C[k][2] && y<C[k][5]) v++;
int c1 = C[k][3] + D[k][0]*v, c2= C[k][4] + D[k][1]*v;
F(x, c1, c2) B[k] += A[y][x];
}
ma = max(ma, B[k]); mi = min(mi, B[k]); t -= B[k];
} ma = max(ma, t); mi = min(mi, t);
ans = min(ans, ma-mi);
}
}
}
}
cout << ans;
return 0;
}
'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ 17837] 새로운 게임 2 (0) | 2019.11.06 |
---|---|
[BOJ 17142] 연구소 3 (0) | 2019.09.18 |
[BOJ 17140] 이차원 배열과 연산 (0) | 2019.09.18 |
[BOJ 17143] 낚시왕 (0) | 2019.05.14 |
[BOJ 17144] 미세먼지 안녕! (2) | 2019.05.14 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- scanf
- DFS
- 게리맨더링 2
- 팁
- SWEA
- 삼성
- 트렌드
- 시간 복잡도
- string
- 2018 KAKAO BLIND RECRUITMENT
- 17142
- 백준
- 이차원 배열과 연산
- hackerrank
- 연구소 3
- 17144
- 알고리즘
- 2018 카카오 블라인드 채용
- 입출력
- 17140
- 17143
- 새로운 게임 2
- 역량 테스트
- 미세먼지 안녕!
- 17779
- DP
- boj
- STL
- 17837
- SW Expert Academy
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함