문제: icpc.me/7573
그물의 둘레와 물고기의 수가 100으로 매우 적다 이를 이용하여 완전탐색을 해주면 된다.
한 물고기에 대해 그 물고기를 둘레에 포함하는 가능한 모든 그물을 만들어본 뒤 확인해주면 된다.
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 32 33 34 35 | #include <cstdio> #include <algorithm> using namespace std; int n, l, m, r; pair<int, int> f[101]; bool chk(int x, int y, int lx, int ly, int rx, int ry) { return lx <= x&&x <= rx&&ly <= y&&y <= ry; } int count(int lx, int ly, int rx, int ry) { int ret = 0; for (int i = 0; i < m; i++) ret += chk(f[i].first, f[i].second, lx, ly, rx, ry); return ret; } void getnet(pair<int,int> p) { for (int k = 1; k < l; k++) { int nx = k; int ny = l - k; for (int i = p.first - nx; i <= p.first; i++) { for (int j = p.second - ny; j <= p.second; j++) { r = max(r, count(i, j, i + nx, j + ny)); } } } } int main() { scanf("%d%d%d", &n, &l, &m); l /= 2; for (int i = 0; i < m; i++) scanf("%d%d", &f[i].first, &f[i].second); for (int i = 0; i < m; i++) getnet(f[i]); printf("%d\n", r); return 0; } | cs |
'알고리즘 관련 > BOJ' 카테고리의 다른 글
BOJ)3079 입국심사 (1) | 2017.04.13 |
---|---|
BOJ)2820 자동차 공장 (0) | 2017.04.13 |
BOJ)1202 보석 도둑 (0) | 2017.04.12 |
BOJ)14499 주사위 굴리기 (2) | 2017.04.12 |
BOJ)2213 트리의 독립집합 (1) | 2017.04.10 |