※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 24310번 문제인 БОЯДИСВАНЕ НА ОГРАДА이다.
문제는 아래 링크를 확인하자.

https://www.acmicpc.net/problem/24310 

 

24310번: БОЯДИСВАНЕ НА ОГРАДА

На първия ред на стандартния вход са записани четири цели числа A, B, C и D, разделени с по един интервал – номера на дъските от оградата, между

www.acmicpc.net

주어지는 두 구간의 합집합에 속하는 정수의 개수를 출력하는 문제이다.

 

두 구간이 겹치는 경우와 안 겹치는 경우로 나누어 각 경우에 맞게 문제를 해결해주자.

 

아래는 제출한 소스코드이다.

#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

+ Recent posts