👤

PROSZE O POMOC!!!!
INFORMATYKA C++ TABLICE!




Napisz program, który dla danych dwóch ciągów liczb naturalnych sprawdza, czy pierwszy z nich jest podciągiem drugiego.
UWAGA: Ciąg A jest podciągiem ciągu B, jeśli A może powstać z B przez usunięcie niektórych elementów ciągu B (w szczególnych przypadkach wszystkich elementów bądź żadnego elementu).

Wejście
W pierwszym wierszu wejścia znajduje się liczba naturalna n (mniejsza od 1000000) określająca długość pierwszego ciągu. W drugim wierszu znajduje się n liczb naturalnych. Są to elementy pierwszego ciągu. W podobny sposób w trzecim i czwartym wierszu znajduje się drugi ciąg.

Wyjście
Opis wyjścia.

W jedynym wierszu wyjścia należy wypisać słowo TAK lub NIE, w zależności od tego, czy pierwszy ciąg jest podciągiem drugiego ciągu.
Przykłady
Dla danych wejściowych

3
2 4 1
7
2 1 4 2 4 2 1
poprawną odpowiedzią jest
TAK
a dla danych wejściowych
3
2 4 1
7
2 1 4 2 4 2 4
poprawną odpowiedzią jest
NIE


Odpowiedź :

Odpowiedź:
#include <iostream>

using namespace std;

int A[1000005];

int B[1000005];

int main()

{

   int x, y, j = 0;

   cin >> x;

   for (int i = 0; i < x; i++) cin >> A[i];

   cin >> y;

   for (int i = 0; i < y; i++) cin >> B[i];

   for (int i = 0; i < x; i++)

   {

       for (j = j; j < y; j++)

       {

           if (A[i] == B[j])

           {

               break;

           }

           else if (j == y-1)

           {

               cout << "NIE";

               return 0;

           }

       }

   }

   cout << "TAK";

   return 0;

}

Nie wiem jak tutaj zrobić bloki kodu więc przesyłam w taki sposób. Na przykładowych testach zadanie działało poprawnie.

Odpowiedź

Kod źródłowy w załączniku.

Wyjaśnienie

Zobacz obrazek 0AB