Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

구매할 리필 팩의 수를 찾는 C++ 코드

<시간/>

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