fork download
  1. Numerolodzy z Krainy Trzech Królestw nie mają łatwego życia. Ciągi numerologiczne są tak długie, że ledwo mieszczą się w numerologicznych kajetach, a gdy w rozstrzyganą sprawę zaangażowanych jest wiele osób, często brakuje miejsca na zapisywanie numerologicznych ciągów. Trudno zliczyć tych, którzy z tak błahego powodu jak brak miejsca w kajecie oblali egzamin u legendarnego profesora Tichego na Uniwersytecie Numerologicznym Cabana Sabiego w Kyvkubie (oczywiście mniej niż tych, którzy nie zdali przez niechodzenie na wykłady, ale brak miejsca w kajecie jakoś bardziej utrwalił się w społecznej świadomości). Na szczęście numerolodzy zauważyli, że wiele nawet bardzo długich ciągów ma stosunkowo krótki okres (czyli, że niektóre długie ciągi składają się z wielokrotnie powtórzonego stosunkowo krótkiego podciągu).
  2.  
  3. Wejście
  4.  
  5. Program na wejściu otrzymuje się czwórkę a, b, c, d (b<c<d, 0<a < 16000001, d mieści się w typie unsigned int) opisującą pewien ciąg numerologiczny składający się z a cyfr (zer i jedynek). To czy w jakimś miejscu w ciągu znajduje się 0 czy 1 zależy od tego czy na odpowiadającym mu miejscu w tzw ciągu pomocniczym znajduje się wartość większa od b (wartościom większym od b odpowiada 1 , a mniejszym lub równym b odpowiada 0). Ciąg pomocniczy definiujemy w następujący sposób:
  6.  
  7. Pierwszym elementem ciągu pomocniczego jest c.
  8. Kolejne elementu ciągu obliczamy ze wzoru e=d-(z*z mod d)-1, gdzie e to nowy a z poprzedni element ciągu pomocniczego.
  9. Wyjście
  10.  
  11. Program powinien wypisać na wyjściu najkrótszy okres wczytanego na wejściu ciągu
  12.  
  13. Przykład
  14.  
  15. Wejście 1
  16.  
  17. 100 1 3 4
  18. Wyjście 1
  19.  
  20. 1
  21. Wejście 2
  22.  
  23. 10 1 2 3
  24. Wyjście 2
  25.  
  26. 1000000000
  27. Wejście 3
  28.  
  29. 7 1 3 5
  30. Wyjście 3
  31.  
  32. 101
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty