특정 주에 경기장에서 'b'개의 경기가 있고 'b'개의 기자회견이 있다고 가정합니다. 선수 탈의실과 기자 회견장에 각각 2개의 카페테리아가 있습니다. 카페테리아에는 2개의 청량 음료 디스펜서가 있으며 주 초에 채워야 합니다. 탈의실 카페테리아 음료 디스펜서는 많이 사용되며 매 'c' 게임 후에 다시 채워야 하며 회의장 식당의 디스펜서는 모든 'd' 이벤트 후에 다시 채워야 합니다. 경기장 유지 관리 위원회는 매주 초에 k 개의 음료 리필 팩을 주문할 수 있고, 탈의실 식당용 'x' 팩, 회의실 식당용 'y' 팩을 주문할 수 있습니다. 여기서 x + y <=k입니다. 경기 일정이 주어지면 x와 y의 값을 찾아야 하며, k 이상의 리필 팩이 필요한 경우 "Limit Exceeded"를 인쇄합니다.
따라서 입력이 a =8, b =8, c =4, d =6, k =9와 같으면 출력은 2, 2가 됩니다.
단계
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
a := (c + a - 1) / c b := (d + b - 1) / d if a + b <= k, then: print(a, b) Otherwise, print("Limit Exceeded")
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
#include <bits/stdc++.h> using namespace std; #define N 100 void solve(int a, int b, int c, int d, int k) { a = (c + a - 1) / c; b = (d + b - 1) / d; if(a + b <= k) cout<<a<<" "<<b<<"\n"; else cout<<"Limit Exceeded."<<"\n"; } int main() { int a = 8, b = 8, c = 4, d = 6, k = 9; solve(a, b, c, d, k); return 0; }
입력
8, 8, 4, 6, 9
출력
2 2