La un concurs de informatică participă elevi împărțiți în echipe de câte . Echipa poate lucra în comun la problemele propuse doar dacă au calculatoarele în rețea. Laboratorul de informatică e mai special: are calculatoare, distribuite pe două rânduri la distanță de un metru între ele (vertical și orizontal) și cabluri de rețea de lungime un metru. Concursul se desfășoară pe mai multe zile și nu există două zile de concurs cu aceeași configurație a rețelei.
Exemplu: pentru , cei elevi au fost împărțiți în echipe, iar aranjarea rețelei în cele zile de concurs este cea din figura de mai jos.
Administratorul laboratorului vrea să memoreze în ordine lexicografică toate configurațiile folosite în zilele de concurs. Cablul orizontal se notează prin 0
, iar cel vertical prin 1
. Lucrând ordonat și eficient, pentru cele trei zile el își va nota valorile: 001
, 100
, respectiv 111
. Se observă că o reprezentare de genul 000
, 010
, 011
, 101
nu poate fi realizată.
Cerinţă
Cunoscând , să se determine:
- Numărul de zile modulo în care se desfășoară concursul.
- Configurațiile laboratorului în ziua și ziua , cunoscând configurația zilei .
Date de intrare
Fişierul de intrare calc.in
conţine pe prima linie un număr natural . Pentru toate testele de intrare, numărul poate avea doar valoarea sau valoarea .
Pe linia a doua vom avea numărul natural .
Pe linia a treia se va găsi un șir de cifre binare, fără spații între ele, reprezentând configurația corectă realizată de administrator în ziua .
Date de ieșire
Dacă valoarea lui este , se va rezolva numai punctul 1 din cerință.
În acest caz, în fişierul de ieşire calc.out
se va scrie un singur număr natural reprezentând numărul de zile în care se desfășoară concursul pentru cele echipe.
Dacă valoarea lui este , se va rezolva numai punctul 2 din cerință.
În acest caz, fişierul de ieşire calc.out
va conține două linii. Pe prima linie se vor scrie cifre binare, fără spații între ele, reprezentând configurația rețelei din ziua precedentă, iar pe a doua linie cifre binare, fără spații între ele, reprezentând configurația din ziua următoare. Dacă în ziua precedentă nu există o configurație conform cerințelor problemei, se va scrie pe prima linie valoarea . Dacă în ziua următoare nu există o configurație conform cerințelor problemei, se va scrie pe a doua linie valoarea .
Restricții și precizări
- Pentru rezolvarea corectă a primei cerinţe se acordă de puncte, iar pentru cerința a doua se acordă de puncte.
Exemplul 1
calc.in
1
3
001
calc.out
3
Exemplul 2
calc.in
2
3
001
calc.out
-1
100