특정 주에 경기장에서 '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