Polish version    English version  
  OI books


 News
 About Olympic
 History of OI
 OI books
Publications in English
XVII OI 2009/2010
XVI OI 2008/2009
XV OI 2007/2008
XIII OI 2005/2006
XII OI 2004/2005
XI OI 2003/2004
X OI 2003/2003
IX OI 2001/2002
VIII OI 2000/2001
VII OI 1999/2000
VI OI 1998/1999
V OI 1997/1998
IV OI 1996/1997
III OI 1995/1996
Where to buy?
Order
PS and PDF files
 National team
 Olympic camps
 Photo gallery
 Links
 SIO
 MAIN
This document is not available in English version.

III Obóz im. A. Kreczmara 2002

Zadanie: szu
Autor: Piotr Sankowski
Przesunięcia cykliczne

dzień trzeci 8 sierpnia 2002
Plik źródłowy: szu.??? (np. pas, c, cpp)
Plik wejściowy: szu.in
Plik wyjściowy: szu.out

Dla ciągów liter x i y, jeżeli można znaleźć dwa ciągi liter u i v takie, że x=uv i y=vu, to x nazywamy cyklicznym przesunięciem y. Innymi słowy, cyklicznym przesunięciem ciągu liter y jest ciąg liter x powstały poprzez przestawienie pewniego zakończenia ciągu y na jego początek. Między innymi cały ciąg jest swoim własnym przesunięciem cyklicznym. Twoim zadaniem jest znalezienie liczby wystąpień cyklicznych przesunięć zadanego wzorca w zadanym tekście.

Zadanie

Napisz program, który:

  • wczyta z pliku tekstowego szu.in tekst i wzorzec,
  • policzy ile razy cykliczne przesunięcia wzorca występują w tekście,
  • zapisze do pliku wynikowego szu.out liczbę wystąpień cyklicznych przesunięć wzorca w tekście.

Wejście

W pierwszym wierszu pliku tekstowego szu.in znajdują się dwie liczby całkowite n (1 <= n <= 1000000) i m (1 <= m <= 1000) oddzielone spacją, oznaczające odpowiednio długość tekstu i długość wzorca. W kolejnym wierszu zapisanych jest n małych angielskich liter nieoddzielonych spacjami. Jest to tekst. W następnym wierszu zapisanych jest m małych angielskich liter nieoddzielonych spacjami. Jest to wzorzec.

Wyjście

Plik tekstowy szu.out powinien zawierać jedną liczbę całkowitą będącą liczbą wystąpień cyklicznych przesunięć wzorca w tekście.

Przykład

Dla pliku wejściowego szu.in:

8 4
aaaabaaa
aaab

poprawną odpowiedzią jest jest plik wyjściowy szu.out:

4



Print friendly version