ホームページ > バックエンド開発 > C++ > C++ 課題を提出する

C++ 課題を提出する

WBOY
リリース: 2023-09-13 18:29:06
転載
1002 人が閲覧しました

C++ 課題を提出する

このチュートリアルでは、試験監督に見つからずに課題を合格する方法を見つけるアルゴリズムを作成する必要があります。各学生は試験監督に課題を提出しなければなりません。学生 A の課題は学生 B に与えられるため、学生 B は監督官に気づかれずに課題を学生 A に返却/渡さなければなりません。

学生は全員列に並んでいます。私たちは、バレずに生徒 A に課題を渡す方法を見つける必要があります。課題を渡すためのさまざまな要件は次のとおりです。

  • 生徒 A (インデックス i) は、インデックス (i- 1) および (i の隣の生徒に課題を渡すことができます) 1)

  • 学生は課題を提出、承認、保留することができます。

  • 試験監督はインデックス [il, rl] 内のすべての生徒を監視しています。

  • 学生は監督者の範囲内にいる場合、課題を送受信することはできません。

  • 学生は、監督者の監督下にある間は課題を送受信することはできません。 p>

  • 学生がこの範囲内で課題を保持している場合、試験監督はそれらを検出しません。

4 つの入力 p、q、r、s が与えられます。ここで、p は生徒の総数、q は試験官が監視する il から rl までの歩数の合計です。 c は生徒 A の位置、d は生徒 A の位置です。生徒Bの立場。

各ステップ (q) には 3 つの入力があります。 -

  • 試験監督が指定された範囲を監視する合計時間。

  • 左端の収容範囲では、監視官が監視しています。

  • 右端の範囲内では、試験官が監視しています。 、見ています。

3 つの単語の出力シーケンスが必要です:「left」、「right」、「hold」。課題 (左/右) を通じて生徒のアクティビティ (視聴している場合) を示します。またはそのままにしておいてください。たとえば、

ステップ

入力

8 3 2 7
1 4 6
2 1 8
3 5 6
ログイン後にコピー

出力

Right
Keep
Right
Right
Right
Right
ログイン後にコピー
ログイン後にコピー

説明

これらの指示に従って、課題はキャプチャされることなく、インデックス 2 の生徒からインデックス 7 の生徒に転送されます。

入力

5 1 1 3
1 2 5
ログイン後にコピー

出力

Keep
Right
Right
ログイン後にコピー

説明

次の指示に従ってくださいの場合、課題はキャプチャされることなく、インデックス 1 の学生からインデックス 3 の学生に転送されます。

解決策に近づく

特定のインスタンスで、監督官が範囲内で、現在課題を行っている生徒、または課題が送信されている生徒のいずれかを監視している場合、その後、生徒はその課題に彼と一緒に残ります。それ以外の場合は、最終ゴールの方向にある隣の生徒にボールをパスします。

#include <bits/stdc++.h>
using namespace std;
void solve(int p, int q, int r, int s,
long t[], int l[], int ar[]){
   int dir;
   string val;
   if (r < s) {
      dir = 1;
      val = "Right";
   } else {
      dir = -1;
      val = "Left";
   }
   string answer = "";
   int i = 0, current = r;
   long tim = 1;
   while (1) {
      if (i < q && tim == t[i]) {
         if ((current >= l[i] && current <= ar[i]) ||
         (current + dir >= l[i] && current + dir <= ar[i])) {
            answer += "Keep\n";
            tim++;
            i++;
            continue;
         }
         i++;
      }
      current += dir;
      answer += val+"\n";
      tim++;
      if (current == s)
         break;
   }
   cout << answer << endl;
}
int main(){
   int p = 8, q = 3, r = 2, s = 7;
   long t[q + 2] = { 1,2,3 };
   int l[q + 2] = { 4,1,5 };
   int ar[q + 2] = { 6,8,6 };
   solve(p, q, r, s, t, l, ar);
   return 0;
}
ログイン後にコピー

出力

Right
Keep
Right
Right
Right
Right
ログイン後にコピー
ログイン後にコピー

結論

このチュートリアルでは、監督なしで機能するアルゴリズムを見つけるためのアルゴリズムを作成する方法を学びました。このケースは、代入メソッドと C コードを通じて説明されます。このコードは Java、Python、その他の言語でも記述できます。上記のアルゴリズムは、競技コーディングコンテストにおいて重要なアルゴリズムです。この質問には、C コードを通じて解決した実際の問題が含まれています。このチュートリアルがお役に立てば幸いです。

以上がC++ 課題を提出するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート