Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Hantar Tugasan C++

Hantar Tugasan C++

WBOY
WBOYke hadapan
2023-09-13 18:29:06955semak imbas

Hantar Tugasan C++

Dalam tutorial ini kita perlu menulis algoritma untuk mencari jalan untuk lulus tugasan tanpa disedari oleh proctor. Setiap pelajar mesti menyerahkan tugasan kepada pengawas. Tugasan Pelajar A diberikan kepada Pelajar B, jadi Pelajar B mesti memulangkan/lulus tugasan kepada Pelajar A tanpa disedari oleh pengawas.

Semua pelajar duduk dalam barisan. Kita perlu mencari jalan untuk menghantar semula tugasan kepada pelajar A tanpa ditangkap. Pelbagai keperluan yang mereka boleh lulus tugasan adalah seperti berikut -

  • Pelajar A (di indeks i) boleh menghantar tugasan kepada jiran yang terletak di indeks (i- 1) dan (i+1)

  • Pelajar boleh menghantar, menerima atau memegang tugasan.

  • Pengawal sedang memantau semua pelajar dalam indeks [il, rl].

  • Pelajar tidak boleh menghantar atau menerima tugasan semasa mereka berada dalam lingkungan pengawas.

  • Pelajar tidak boleh menghantar atau menerima tugasan semasa mereka berada di bawah pengawasan pengawas. p>

  • Jika pelajar menyimpan tugasan mereka dalam julat ini, pengawas tidak akan menyedarinya.

Kami diberi empat input p, q, r, s, di mana p ialah jumlah bilangan pelajar dan q ialah jumlah langkah pemantauan oleh pengawas dari il kepada Nombor rl, c ialah kedudukan pelajar A, dan d ialah kedudukan pelajar A. Kedudukan pelajar B.

Setiap langkah (q) mempunyai tiga input -

  • Jumlah masa yang dipantau oleh pengawas untuk julat yang diberikan.

  • Di kawasan kurungan paling kiri, pengawas sedang memerhati.

  • Di kawasan pembendungan di hujung kanan, pengawas sedang memerhati. , menonton.

Memerlukan urutan keluaran 3 perkataan: "kiri", "kanan" dan "tahan", menunjukkan aktiviti pelajar (jika mereka menonton) melalui tugasan ( kiri / kanan) atau simpannya. Contohnya,

Langkah

Input

8 3 2 7
1 4 6
2 1 8
3 5 6

🎜🎜🎜#🎜🎜🎜#🎜 #

Right
Keep
Right
Right
Right
Right

Penjelasan

Mengikut arahan ini, tugasan akan dipindahkan daripada pelajar di indeks 2 kepada pelajar di indeks 7 tanpa ditangkap.

Input

5 1 1 3
1 2 5

Output

Keep
Right
Right

Output#🎜🎟#rreee 🎜🎜#

Ikuti arahan ini dan tugasan akan dipindahkan daripada pelajar di indeks 1 kepada pelajar di indeks 3 tanpa ditangkap.

Dekat dengan penyelesaian

Dalam keadaan tertentu, jika pengawas memantau dalam julat itu, sama ada pelajar sedang melakukan tugasan atau pelajar yang tugasan sedang diberikan. menghantar pelajar, maka pelajar itu akan kekal bersamanya untuk menyelesaikan tugasan tersebut. Jika tidak, dia menghantar bola kepada pelajar bersebelahan ke arah gol terakhir.

Contoh

#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;
}

Output

Right
Keep
Right
Right
Right
Right

Kesimpulan

Dalam tutorial ini, kami belajar untuk menulis algoritma ini satu cara untuk lulus tugasan tanpa ditemui oleh pengawas bersama-sama dengan kod C++. Kita juga boleh menulis kod ini dalam java, python dan bahasa lain. Algoritma di atas adalah algoritma penting untuk pertandingan pengekodan kompetitif. Soalan ini mengandungi masalah kehidupan sebenar yang kami selesaikan melalui kod C++. Kami harap anda mendapati tutorial ini membantu.

Atas ialah kandungan terperinci Hantar Tugasan C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam