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

問題の数を数えるC++プログラムは、リストの左端または右端から解決できます


n個の要素を持つ配列Aがあり、別の数kがそこにあるとします。コンテストにn個の問題があると考えてください。アマルの問題解決スキルはkです。 Amalは常に、リストの最後から問題を解決します。そして、彼は難易度がkより大きい問題を解決することはできません。左右の問題の難易度がkより大きい場合、彼は停止します。彼が解決できる問題の数を数える必要があります。 A[i]はi番目の問題の難しさを表しています。

したがって、入力がA =[4、2、3、1、5、1、6、4]のような場合。 k =4の場合、出力は5になります。これは、最初に左端の問題を4で解決し、次に右端の問題を4で解決し、次に右端の問題を解決できなくなったためです。次に、左から、難易度2、3、1の問題を解決します。合計5つの問題を解決できます。

ステップ

これを解決するには、次の手順に従います-

 n:=Alのサイズ:=0r:=n-1 for initialize i:=0、i > 

理解を深めるために、次の実装を見てみましょう-

 #include usingnamespace std; intsolve(vector  A、int k){int n =A.size(); int l =0、r =n-1; for(int i =0; i  A ={4、2、3、1、5、1、6、4};を返します。 int k =4; cout < 

入力

 {4、2、3、1、5、1、6、4}、4 

出力

 5 

  1. 特定の操作で各都市から訪問できる都市の数をカウントするC++プログラム

    (xi、yi)の形式でN個の座標点Pのリストがあるとします。 x値とy値は、最初のN個の自然数の順列です。 1からNの範囲のkごとに。都市kにいます。操作は何度でも任意に適用できます。操作:現在の都市よりもx座標が小さく、y座標が小さい、またはx座標が大きい、またはy座標が大きい別の都市に移動します。都市kから到達できる都市の数を見つける必要があります。 。 したがって、入力がP =[[1、4]、[2、3]、[3、1]、[4、2]]の場合、出力は[1、1、2、2] ステップ これを解決するには、次の手順に従います- n := size of P Define one 2D array ls

  2. サイズdで作成できる十二角形の数をカウントするC++プログラム

    数dがあるとします。正方形のタイルと辺の長さが1の通常の三角形のタイルが無数にあると考えてください。これらのタイルを使用して、側面dの通常の十二角形(12辺の多角形)を形成できる方法をいくつ見つける必要があります。答えが大きすぎる場合は、結果mod998244353を返します。 ステップ これを解決するために、次の手順に従います- b := floor of d/2 - 1 c := 1 for initialize i := 2, when i < d, update (increase i by 1), do:    b := b * (floor of