※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 24310번 문제인 БОЯДИСВАНЕ НА ОГРАДА이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/24310
주어지는 두 구간의 합집합에 속하는 정수의 개수를 출력하는 문제이다.
두 구간이 겹치는 경우와 안 겹치는 경우로 나누어 각 경우에 맞게 문제를 해결해주자.
아래는 제출한 소스코드이다.
#include <iostream>
#include <utility>
using namespace std;
int l1, r1, l2, r2;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> l1 >> r1 >> l2 >> r2;
if (l1 > r1) swap(l1, r1);
if (l2 > r2) swap(l2, r2);
if ((l2 <= r1 && r1 <= r2) || (l1 <= r2 && r2 <= r1)) cout << max(r1, r2) - min(l1, l2) + 1;
else cout << (r1 - l1) + 1 + (r2 - l2) + 1;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 16170 // C++] 오늘의 날짜는? (0) | 2023.01.07 |
---|---|
[BOJ 24312 // C++] ДИНИ (0) | 2023.01.07 |
[BOJ 26946 // C++] Tomater (0) | 2023.01.07 |
[BOJ 10185 // C++] Focus (0) | 2023.01.07 |
[BOJ 22123 // C++] Экзамен (0) | 2023.01.07 |