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

은행이 모을 수 있는 최대 지폐 수를 계산하는 C++ 코드

<시간/>

세 개의 숫자 k, l 및 m이 있고 n개의 요소가 있는 또 다른 배열 A가 있다고 가정합니다. 강도는 은행을 털지 못했지만 은행의 모든 ​​금고를 열었습니다. 빈 고객은 이 실패한 강도를 이용하여 금고에서 돈을 훔치기로 결정합니다. 한 줄로 많은 금고가 있습니다. 모든 금고에 총 n개의 지폐가 남아 있습니다. i번째 지폐는 금고 A[i]에 있습니다. 은행 직원은 지금 안전한 곳에 있습니다. k. 두 명의 경비원이 있는데 그 중 한 명은 l k가 되도록 금고 m을 지킵니다(그는 물건의 오른쪽에 있습니다). 두 경비원은 움직이지 않습니다. 매초마다 물건은 현재 금고에서 모든 지폐를 가져오거나 인접한 금고로 이동할 수 있습니다. 그러나 그는 절도 혐의로 기소될 수 있기 때문에 경비원이 지키는 금고는 아무 때나 방문할 수 없습니다. 물건이 모을 수 있는 최대 지폐의 양을 찾아야 합니다.

따라서 입력이 k =5와 같으면; 내가 =3; m =7; A =[4, 7, 5, 5, 3, 6, 2, 8]이면 출력은 4가 됩니다.

단계

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

c1 := 0
n := size of A
c1 := 0
for initialize i := 0, when i < n, update (increase i by 1), do:
   x := A[i]
   if x > l and x < m, then:
      (increase c1 by 1)
return c1

예시

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

#include <bits/stdc++.h>
using namespace std;
int solve(int k, int l, int m, vector<int> A){
   int c1 = 0, x;
   int n = A.size();
   c1 = 0;
   for (int i = 0; i < n; i++){
      x = A[i];
      if (x > l && x < m)
         c1++;
   }
   return c1;
}
int main(){
   int k = 5;
   int l = 3;
   int m = 7;
   vector<int> A = { 4, 7, 5, 5, 3, 6, 2, 8 };
   cout << solve(k, l, m, A) << endl;
}

입력

5, 3, 7, { 4, 7, 5, 5, 3, 6, 2, 8 }

출력

4