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

 

이번에 볼 문제는 백준 24333번 문제인 СРЕЩА НА ПРИЯТЕЛИ이다.
문제는 아래 링크를 확인하자.

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

 

24333번: СРЕЩА НА ПРИЯТЕЛИ

Двама бивши приятели от ученическите години, които отдавна не са се виждали, решили да се срещнат в ресторанта на новия бизнес-център. Първи

www.acmicpc.net

두 닫힌 구간 [l1,r1]과 [l2,r2]의 교집합 [L,R]에 포함되는 정수 중 k의 배수가 아닌 수의 개수를 구하는 문제이다.

 

[L,R]에 속한 k의 배수의 개수는 (R 이하의 k의 배수의 개수) - (L 미만의 k의 배수의 개수)로 계산할 수 있음을 이용해 문제를 해결하자.

 

입력의 크기가 충분히 작으므로, 1부터 50000까지의 각 수에 대하여 두 구간에 포함되는지의 여부와 k의 배수인지의 여부를 확인해나가는 방식으로도 문제를 충분히 해결할 수 있을 것이다.

 

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

#include <iostream>
using namespace std;

int l1, r1, l2, r2, k;
int L, R;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	cin >> l1 >> r1 >> l2 >> r2 >> k;
	L = max(l1, l2), R = min(r1, r2);

	if (R < L) cout << 0;
	else cout << (R - L + 1) - R / k + (L - 1) / k;
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 11258 // C++] Thai Lottery Checking  (0) 2023.01.06
[BOJ 20374 // C++] Big Money  (0) 2023.01.06
[BOJ 12250 // C++] New Lottery Game (Small)  (0) 2023.01.06
[BOJ 8794 // C++] Poniedziałki  (0) 2023.01.06
[BOJ 10693 // C++] Abdelrahman  (0) 2023.01.06

+ Recent posts