두 개의 숫자 l과 r이 있다고 가정합니다. 상점이 있고 우리는 ''개의 식품이 있는 식품 용기를 할인된 가격으로 판매하려고 하고 일부 고객은 x 식품을 구매하기를 원합니다. 탐욕스러운 전략을 따르는 고객 -
-
그는 할인된 가격으로 (x/a) 팩을 구매합니다.
-
그런 다음 남은 (x mod a) 식품을 하나씩 구매하려고 합니다.
그러나 고객은 욕심이 많아서 (x mod a) 식품을 하나씩 구매하려고 하는데 (x mod a) ≥ a/2일 경우 식품을 한 팩 전체 구매하기로 결정합니다. 고객은 l에서 r(둘 다 포함) 범위의 식품을 원하는 만큼 구입할 수 있습니다. 각 고객이 처음에 원했던 것보다 더 많은 캔을 구매하는 그러한 크기의 팩을 선택할 수 있는지 확인해야 합니다.
따라서 입력이 l =3과 같으면; r =4이면 출력은 True가 됩니다. 왜냐하면 a =5이면 3개 또는 4개의 캔을 사고 싶다면 한 팩을 살 수 있기 때문입니다.
단계
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
if r / 2 >= l, then: return false Otherwise return true
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
#include <bits/stdc++.h> using namespace std; bool solve(int l, int r){ if (r / 2 >= l) return false; else return true; } int main(){ int l = 3; int r = 4; cout << solve(l, r) << endl; }
입력
3,4
출력
1