※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 17262번 문제인 팬덤이 넘쳐흘러이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/17262
17262번: 팬덤이 넘쳐흘러
선물 포장 공장을 말아먹은 욱제는 계곡에서 백숙을 파느라 학교에 자주 가지 못한다. 하지만 월클의 인생은 피곤한 법! 욱제는 지금처럼 힘든 시기에도 자신을 기다리는 5조5억명의 열렬한 팬
www.acmicpc.net
모든 구간이 다 겹치는 시간이 있는 경우 답이 0이 됨은 자명하다. 그러한 구간이 없는 경우를 생각해보자.
욱제는 "가장 빨리 학교를 떠나는 학생"에게 인사를 해야 하므로 주어지는 R의 값의 최솟값인 시각에는 학교에 있어야 함을 알 수 있다. 마찬가지로 욱제는 "가장 늦게 학교에 오는 학생"에게 인사를 해야 하므로 주어지는 L의 값의 최댓값인 시각에도 학교에 있어야 함을 알 수 있다. 따라서 욱제는 학교에 못해도 "R의 최솟값" 시각부터 "L의 최댓값" 시각까지는 학교에 있어야 한다.
한편, 위와 같은 시간동안 학교에 머무르면 모든 학생들과 인사를 할 수 있음을 쉽게 관찰할 수 있다. 이를 이용해 문제를 해결하자.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
int N;
int L = -1000000007, R = 1000000007;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> N;
while (N--) {
int x, y; cin >> x >> y;
L = max(L, x);
R = min(R, y);
}
cout << max(0, L - R);
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 14156 // C++] Binarni (0) | 2024.04.05 |
---|---|
[BOJ 23090 // C++] 난민 (0) | 2024.04.04 |
[BOJ 7694 // C++] Triangle (0) | 2024.04.02 |
[BOJ 15330 // C++] Parallel Lines (0) | 2024.04.01 |
[BOJ 11525 // C++] Farey Sequence Length (0) | 2024.03.31 |