C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

銀行が収集できる最大紙幣をカウントするC++コード


3つの数値k、l、およびmがあり、n個の要素を持つ別の配列Aがあるとします。強盗は銀行を奪うことに失敗しましたが、銀行のすべての金庫を開けることができました。空白のクライアントは、この失敗した強盗を利用して、金庫からいくらかのお金を盗むことにしました。一列に並んでいるのはたくさんの金庫です。全部でn枚の紙幣が金庫に残っています。 i番目の紙幣は安全なA[i]にあります。銀行員は現在安全です。 2つの警備員がいます。そのうちの1つは、l kになるようにセーフmをガードします(彼はスタッフの右側にいます)。 2人の警備員は動きません。毎秒、スタッフは現在の金庫からすべての紙幣を取り出すか、隣接する金庫のいずれかに移動することができます。しかし、彼は盗んだ罪で起訴される可能性があるため、いつでも警備員によって守られている金庫を訪れることはできません。収集できる紙幣の最大量を見つける必要があります。

したがって、入力がk=5のような場合。 l =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

  1. ロボットが最終位置に到達するまでのステップをカウントするC++コード

    2つの座標(x1、y1)と(x2、y2)があるとします。ロボットがポイント(x1、y1)にいて、ポイント(x2、y2)に移動しようとしています。 1つのステップで、ロボットは1つのセルに向かって8つの隣接する座標に移動できます。最終的な位置に到達するために必要な最小限のステップ数を見つける必要があります。 したがって、入力がx1=3のような場合。 y1 =4; x2 =6; y2 =1;の場合、出力は3になります。 ステップ これを解決するには、次の手順に従います- return maximum of |x2 - x1| and |y2 - y1| 例 理解を深めるために、次の実装

  2. C++の平面内の平行四辺形の数

    平行四辺形を形成する点を含む平面が与えられます。タスクは、与えられた点を使用して形成できる平行四辺形の数を計算することです。平行四辺形では、四辺形の反対側は平行であるため、反対の角度は等しくなります。 入力 − int a[] = {0, 2, 5, 5, 2, 5, 2, 5, 2} Int b[] = {0, 0, 1, 4, 3, 8, 7, 11, 10} 出力 −平面内の平行四辺形の数− 3 説明 −(x、y)点が与えられ、これらの点を使用して、図に示すように3つの平行四辺形のカウントを形成できます。 入力 − a[] = {0, 3, 1, 4, 1, 5} b