コーディングコンテスト後に学生の位置を見つけるためのC++コード
n個の要素を持つ配列Aがあるとします。コーディングコンテストには、合計n人の学生が参加し、開始前に、全員がある程度の肯定的な評価(整数)を持っています。 A[i]はi番目の学生の評価を表します。コンテストが終了した後、すべての学生はいくつかの正の整数の位置になります。私たちは、学生が彼らの評価に従って行われることを期待しています。学生Aの評価が学生Bよりも厳密に低い場合、AはBよりも厳密に高い位置になります。コンテストの最後に位置を見つける必要があります。
したがって、入力がA =[3、5、3、4、5]の場合、2番目と5番目の学生が最高の評価で最初の位置を共有するため、出力は[4、1、4、3、1]になります。学生は3番目の位置で次であり、1番目と3番目の学生は最後の共有4番目の位置です。
ステップ
これを解決するには、次の手順に従います-
n := size of A for initialize i := 0, when i < n, update (increase i by 1), do: d := 1 for initialize j := 0, when j < n, update (increase j by 1), do: if A[j] > A[i], then: (increase d by 1) cout << d << ", "
例
理解を深めるために、次の実装を見てみましょう-
#include <bits/stdc++.h> using namespace std; void solve(vector<int> A){ int n = A.size(); for (int i = 0; i < n; i++){ int d = 1; for (int j = 0; j < n; j++){ if (A[j] > A[i]) d++; } cout << d << ", "; } } int main(){ vector<int> A = { 3, 5, 3, 4, 5 }; solve(A); }
入力
{ 3, 5, 3, 4, 5 }
出力
4, 1, 4, 3, 1,
-
C++でのT秒後のカエルの位置
n個の頂点で構成される無向ツリーが1つあるとします。頂点には1からnまでの番号が付けられています。これで、カエルは頂点1からジャンプを開始します。カエルは、現在の頂点から、訪問していない別の頂点に隣接している場合、1秒でジャンプできます。カエルは、訪れた頂点に戻ることはできません。カエルが複数の頂点にジャンプできる場合は、そのうちの1つにランダムにジャンプします 確率が同じ場合、それ以外の場合、カエルが訪問していない頂点にジャンプできない場合、同じ頂点で永久にジャンプします。 ツリーはエッジの配列として与えられます。 t秒後にカエルが頂点ターゲットにいる確率を見つける必要があります。 し
-
C++で与えられた動きの後のロボットの位置
この問題では、4方向すべてに移動するが、1回だけ移動するロボットが与えられます。方向は上(「U」)、下(「D」)、左(「L」)、右(「R」)です。そして、番号の方向のイニシャルを含む文字列が与えられます。私たちのタスクは、ロボットの初期位置が(0,0)である場合に、ロボットの最終位置を印刷することです。 問題を理解するために例を見てみましょう 入力 −入力:「LDRRUL」 出力 −(0、0) 説明 − L (left) : (0,0) -> (-1,0) D (down) : (-1,0) -> (-1, -1) R (right) : (-1, -1) -> (0