Bajtazar musi za karę obliczyć pewną paskudną i tajemniczą funkcję logiczną
  
, która dla dwóch ciągów liczb naturalnych
  
,\ 
  jest zdefiniowana w następujący sposób:
boolean 
 then return 
 then return 
.
W powyższym zapisie:
 oznacza zbiór złożony ze wszystkich liczb ciągu 
      (ignorujemy powtórzenia i kolejność liczb),
    
 jest najdłuższym prefiksem (początkowym fragmentem) ciągu 
,
      dla którego 
,
    
 jest najdłuższym sufiksem (końcowym fragmentem) ciągu 
,
      dla którego 
,
    
 oznacza koniunkcję logiczną, 
 - prawdę, 
 - fałsz,
      a 
 - liczność zbioru 
.
  
 mamy:
  
  Dla bardzo dużych danych program obliczający funkcję bezpośrednio z definicji jest
  zdecydowanie zbyt wolny.
  Twoim zadaniem jest jak największe przyspieszenie obliczania tej funkcji.
    Napisz program, który
    wczyta ze standardowego wejścia kilka par ciągów 
 i
    wypisze na standardowe wyjście wartości 
 dla każdej pary
    wczytanych ciągów.
    Pierwszy wiersz wejścia zawiera jedną
    liczbę całkowitą 
 (
), oznaczającą liczbę par ciągów do przeanalizowania.
    Kolejne 
 wierszy zawiera opisy przypadków testowych.
    Pierwszy wiersz każdego opisu zawiera dwie liczby całkowite 
 oraz 
    (
), oddzielone pojedynczym odstępem i oznaczające
    długości pierwszego i drugiego ciągu.
    Drugi wiersz zawiera 
 liczb całkowitych 
 (
),
    pooddzielanych pojedynczymi odstępami i opisujących ciąg 
.
    Trzeci wiersz zawiera 
 liczb całkowitych 
 (
),
    pooddzielanych pojedynczymi odstępami i opisujących ciąg 
.
    Wyjście powinno się składać z 
 wierszy; 
-ty wiersz (dla 
)
    powinien zawierać jedną liczbę całkowitą - 0 lub 1 -
    oznaczającą wartość wyrażenia 
 dla 
-tego przypadku testowego.
Dla danych wejściowych:
2 4 5 3 1 2 1 1 3 1 2 1 7 7 1 1 2 1 2 1 3 1 1 2 1 3 1 3
poprawną odpowiedzią jest:
0 1
Autorzy zadania: Jakub Radoszewski, Wojciech Rytter.
In the event of technical difficulties with Szkopuł, please contact us via email at [email protected].
If you would like to talk about tasks, solutions or technical problems, please visit our Discord servers. They are moderated by the community, but members of the support team are also active there.