BOJ 2336 - 굉장한 학생 (세그트리, 수학, 기하)
https://www.acmicpc.net/problem/2336 바로 이전에 풀었던 유형과 유사 n명의 학생이 동점자 없는 시험을 세번 치른다. i번 학생의 1,2,3차 시험 등수 < j번 학생의 1,2,3차 시험 등수일 경우 i번 학생은 j번학생보다 대단하다. 본인보다 대단한 학생이 없는 경우 그 학생은 굉장한 학생이라고 할 때, 굉장한 학생의 수를 구하라 (입력에서 1번 인덱스에 오는 숫자 i는 i번 학생이 1등했다는 의미) 각 학생마다 1,2,3차 등수를 tuple ran[MAX]에 저장한다. ex) ran[3] = {x,y,z} : 3번학생이 1차시험 x등 2차시험 y등 3차시험 z등했음. 1차시험의 등수를 기준으로 ran을 정렬한 후에, y와 z만 가지고 비교해 주면 된다. 아래 그림을 구현하..
2020. 4. 22.
2019-2020 ICPC, Asia Jakarta Regional - H. Twin Buildings(수학, 기하)
https://codeforces.com/problemset/problem/1252/H 바로 전에 포스팅한 문제의 풀이와 유사 L*W로 표현되는 영역들이 주어진다. (L,W n; for (int i = 0; i > l >> w; if (l > w) swap(l, w); a[i] = { l,w }; temp = max(temp, l * w); temp = max(temp, l * w); } sort(a, a + n); for (int i = n - 1; i >= 0; i--) sf[i] = max(sf[i + 1], a[i].second); for (int i = 0; i < n; i++) { ll l, w; tie(l, w) = a[i]; ans = max(..
2020. 4. 20.