티스토리 뷰
백준 :: BOJ :: 17143 :: 낚시왕
출처 : https://www.acmicpc.net/problem/17143
#include<bits/stdc++.h>
using namespace std;
#define FO(x,y) for(x=0; x<y; x++)
struct F { int r, c, d, s, z; }; vector<F> v;
int R, C, M, ans, dir[2][5] = { { 0,-1,1,0,0 },{ 0,0,0,1,-1 } }, cd[] = { 0,2,1,4,3 };
inline int go(int a, int b, int c, int e) {
int pm = (b + (v[a].s*dir[e][v[a].d])), tm = abs(pm) % ((c - 1) * 2);
if (v[a].s) {
if (v[a].d == 1 || v[a].d == 4) { if (tm > 0 && tm < c) if (pm < 0) v[a].d = cd[v[a].d]; }
else { if (tm == 0 || tm > (c - 1)) v[a].d = cd[v[a].d]; }
}
return (tm > (c - 1) ? ((c - 1) * 2) - tm : tm);
}
int main() {
ios::sync_with_stdio(false); cin.tie(0);
cin >> R >> C >> M; F f;
while (M--) { cin >> f.r >> f.c >> f.s >> f.d >> f.z; f.r--; f.c--; v.push_back(f); }
for (int k = 0; k < C && v.size(); k++) {
F p[100][100] = { 0, }; vector<int>pv[2]; int fc[2] = { 101, }, i, vi[100][100] = { 0, };
FO(i, v.size()) { if (v[i].c == k && fc[0] > v[i].r) { fc[0] = v[i].r; fc[1] = v[i].z; } }
FO(i, v.size()) {
if (v[i].z == fc[1]) { ans += v[i].z; v.erase(v.begin() + i); i--; continue; }
int ni = v[i].r, nj = v[i].c;
if (v[i].d < 3) ni = go(i, ni, R, 0);
else nj = go(i, nj, C, 1);
if (p[ni][nj].z < v[i].z) {
v[i].r = ni; v[i].c = nj; p[ni][nj] = v[i]; if (!vi[ni][nj]) { vi[ni][nj] = 1; pv[0].push_back(ni); pv[1].push_back(nj); };
}
}v.clear();
FO(i, pv[0].size()) v.push_back(p[pv[0][i]][pv[1][i]]);
}
cout << ans;
return 0;
}
'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ 17142] 연구소 3 (0) | 2019.09.18 |
---|---|
[BOJ 17140] 이차원 배열과 연산 (0) | 2019.09.18 |
[BOJ 17144] 미세먼지 안녕! (2) | 2019.05.14 |
[BOJ 3190] 뱀 (0) | 2019.01.21 |
[BOJ 16235] 나무 재테크 (0) | 2019.01.10 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 17142
- 2018 KAKAO BLIND RECRUITMENT
- 알고리즘
- 17779
- scanf
- 역량 테스트
- 게리맨더링 2
- 17837
- SWEA
- DFS
- 2018 카카오 블라인드 채용
- SW Expert Academy
- 삼성
- 17144
- 입출력
- DP
- boj
- 17140
- 연구소 3
- 새로운 게임 2
- string
- 팁
- 백준
- 시간 복잡도
- 17143
- 이차원 배열과 연산
- 미세먼지 안녕!
- hackerrank
- STL
- 트렌드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함