POLSKI SPOJ

Problem hidden
This problem was hidden by Editorial Board member probably because it has incorrect language version or invalid test data, or description of the problem is not clear.

Zadanie w systemie SPOJ (srednie)

1218. Wyszukiwanie wzorca w tekscie

Kod zadania: KMP

Napisz program, który dla danego wzorca P (ang. pattern) i tekstu T wypisze pozycje, na których znajduje się wzorzec P jako podsłowo tekstu T.

Wejście

W pierwszym wierszu danych znajduje się liczba natralna T (0 < T < 11) oznaczająca liczbę zestawów danych.
Każdy zestaw danych podany jest w trzech wierszach. Pierwszy zawiera jedną liczbę naturalną n - oznaczającą długość wzorca P ( n <= 1000000 ). Drugi wiersz zawiera wzorzec P - napis złożony z n liter angielskiego alfabetu (a-z, A-Z). Trzeci wiersz zawiera test T czyli ciąg liter alfabetu angielskiego zakończony znakiem nowego wiersza.

Wyjście

Dla każdego zestawu danych wypisz pozycje na których wzorzec P pasuje w tekscie T. Zakładamy, że litery tekstu T numerowane są od zera.

Przykład

Wejście:
3
2
na
banananobano
6
foobar
foo
9
foobarfoo
barfoobarfoobarfoobarfoobarfoo


Wyjście
2
4
3
9
15
21

Dodane przez:Rafał Nowak
Data dodania:2007-01-14
Limit czasu wykonania programu:1s-4s
Limit długości kodu źródłowego50000B
Języki programowania:DOC AWK C C++ 4.3.2 C++ 4.0.0-8 CLOJ F# GO PAS fpc PDF PERL 6 PS PYTH 3.1.2 SCALA SED TCL TECS TEXT
Pochodzenie:Klasyka

ukryj komentarze
2012-03-30 22:56:06 Piotr Domański
Kod zadania sugeruje użycie algorytmu Knutha-Morrisa-Pratta... Jest ktoś kto zrobił to hashowaniem? Ja probowałem hashami, ale mi sie syf robił na długich stringach i (przy pomocy książki) zrobiłem KMP. Mam ACCEPTED ale kosztowało to sporo wysiłku.
SPOJ System © 2012 Sphere Research Labs | Projekty informatyczne i aplikacje na zamówienie. All Rights Reserved.