티스토리 뷰
문제 출처 : https://www.acmicpc.net/problem/15684
#include <bits/stdc++.h>
using namespace std;
int N, M, H, l[35][15], ans=4;
bool chk() {
for (int i = 0; i < N - 1; i++) {
int ni = 0; int nj = i;
while (1) {
if (ni == H) {
if (nj == i) break;
else return false;
}
nj += l[ni][nj]; ni++;
}
}
return true;
}
void bt(int ni, int nj, int n){
if (chk()) {ans = min(ans, n); return;}
if (n == 3) return;
for (int i = ni; i < H; i++) {
for (int j = nj; j < N - 1; j++) {
if (l[i][j] == 0 && l[i][j + 1] != 1) {
l[i][j] = 1; l[i][j + 1] = -1;
if (j + 2 >= N) bt(i+1, 0, n + 1);
bt(i, j + 1, n + 1);
l[i][j] = 0; l[i][j + 1] = 0;
}
}
nj = 0;
}
}
int main() {
ios::sync_with_stdio(0); cin.tie(0); cin >> N >> M >> H; int a, b;
for (int i = 0; i < M; i++) {
cin >> a >> b; l[a-1][b-1] = 1; l[a-1][b] = -1;
}
bt(0, 0, 0);
cout << (ans>3?-1:ans);
return 0;
}
'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ 14502] 연구소 (0) | 2018.07.15 |
---|---|
[BOJ 9205] 맥주 마시면서 걸어가기 (0) | 2018.07.15 |
[BOJ 2583] 영역 구하기 (0) | 2018.07.14 |
[BOJ 2573] 빙산 (0) | 2018.07.08 |
[BOJ 2638] 치즈 (0) | 2018.07.06 |
- Total
- Today
- Yesterday
- 역량 테스트
- 17779
- string
- 17140
- DFS
- 알고리즘
- hackerrank
- 2018 KAKAO BLIND RECRUITMENT
- 17144
- 시간 복잡도
- 새로운 게임 2
- 이차원 배열과 연산
- SWEA
- 미세먼지 안녕!
- scanf
- DP
- 백준
- 17142
- 17837
- 게리맨더링 2
- 트렌드
- SW Expert Academy
- 삼성
- 연구소 3
- 17143
- 팁
- STL
- 입출력
- 2018 카카오 블라인드 채용
- boj
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |