Fie o matrice de dimensiuni š Ć š care conČine numai valorile 0 Či 1. CÄsuČele marcate cu 0 sunt inaccesibile, Ć®n timp ce cÄsuČele marcate cu 1 sunt accesibile.
Gimi se va afla iniČial Ć®ntr-o cÄsuČÄ marcatÄ cu 1 din aceastÄ matrice, poziČia ei nefiind Ć®nsÄ cunoscutÄ nouÄ. Lui Gimi Ć®i putem da instrucČiuni de tipul: deplaseazÄ-te Ć®n cÄsuČa (š„š , š¦š). Regulile sunt urmÄtoarele:
- Gimi se poate deplasa numai Ć®n cÄsuČe marcate cu
1. - Gimi se poate deplasa numai Ć®n cÄsuČe vecine cu cea Ć®n care se aflÄ. CÄsuČele vecine cu
(š„, š¦)sunt (cĆ¢t timp sunt Ć®n matrice):(š„ ā 1, š¦),(š„, š¦ + 1),(š„ + 1, š¦)Či(š„, š¦ ā 1).
DacÄ Gimi poate respecta toate regulile, atunci acesta se va deplasa Ć®n cÄsuČa (š„š , š¦š). Altfel, va rÄmĆ¢ne pe loc.
CerinČa
ScrieČi un program care, cunoscĆ¢nd š Či š, respectiv matricea, determinÄ:
CerinČa 1. O serie de instrucČiuni pe care, dacÄ Gimi o urmÄreČte, indiferent de poziČia lui iniČialÄ, ne va garanta faptul cÄ va trece prin cÄsuČa (š„š” , š¦š”) (marcatÄ cu 1).
CerinČa 2. O serie de instrucČiuni pe care, dacÄ Gimi o urmÄreČte, indiferent de poziČia lui iniČialÄ, ne va garanta faptul cÄ va trece prin toate celelalte cÄsuČe marcate cu 1.
CerinČa 3. Cel mai mic numÄr š astfel Ć®ncĆ¢t, primind o serie de š instrucČiuni pe care, dacÄ Gimi o urmÄreČte, indiferent de poziČia lui de start, ne va garanta faptul cÄ va trece prin toate celelalte cÄsuČe marcate cu 1, fÄrÄ sÄ fie necesarÄ executarea instrucČiunilor de la š + 1 la š.
Date de intrare
FiČierul de intrare blind.in conČine pe prima linie cerinČa š¶ care trebuie rezolvatÄ, iar pe a doua linie douÄ numere š Či š, separate printr-un spaČiu. Fiecare dintre urmÄtoarele š linii conČin š numere (care au valori numai de 0 Či 1), separate prin cĆ¢te un spaČiu.
DacÄ š¶ = 1, urmÄtoarea linie va conČine douÄ numere š„š” Či š¦š”, separate printr-un spaČiu, reprezentĆ¢nd coordonatele cÄsuČei prin care Gimi va trebui sÄ treacÄ.
DacÄ š¶ = 3, urmÄtoarea linie va conČine un numÄr natural š, reprezentĆ¢nd numÄrul de instrucČiuni. UrmÄtoarele š linii vor conČine cĆ¢te douÄ numere naturale š„ Či š¦, separate printr-un spaČiu, reprezentĆ¢nd instrucČiunile.
Date de ieČire
FiČierul de ieČire blind.out va conČine pentru š¶ = 1 Åi š¶ = 2 seria de instrucČiuni, Ć®n ordinea executÄrii lor. Pe fiecare linie se vor afla cĆ¢te douÄ numere (š„, š¦). Pentru š¶ = 3 fiČierul va conČine numÄrul minim de instrucČiuni cerut.
Punctarea cerinČelor 1 Či 2
Punctajul obČinut pe fiecare test depinde de numÄrul de instrucČiuni afiČate.
NotÄm cu š¾ numÄrul de cÄsuČe de 1 din matrice, iar cu šæš numÄrul de instrucČiuni afiČate. Fie šæmax = 10 000 000, iar š = š¾ dacÄ š¶ = 1, sau š = 3š¾ dacÄ š¶ = 2. DacÄ šæš > šæmax, atunci punctajul obČinut este 0. Pentru punctaj maxim, šæš < š.
Se va acorda punctaj parČial dacÄ nu se respectÄ condiČiile de mai sus. Se pot obČine de la 10% pĆ¢nÄ la 90% din
punctaj. Procentajul se calculeazÄ dupÄ urmÄtoarea formulÄ:
$$ 90 – 80 \times {\left( \frac{\log_{10}{L_i} – \log_{10}{T}}{\log_{10}{L_{max}} – \log_{10}{T}} \right)}^{0.75} $$
RestricČii Či precizÄri
š¶ ā {1, 2, 3}1 ⤠š,š ⤠500; Liniile Či coloanele sunt numerotate Ć®ncepĆ¢nd cu1.1 ⤠š¾ ⤠20 000- Pentru cerinČa 3,
1 ⤠š ⤠2 500 000. - Se garanteazÄ cÄ, printr-un Čir de instrucČiuni, se poate ajunge din orice cÄsuČÄ marcatÄ cu
1Ć®n oricare alta. - DacÄ Gimi se aflÄ iniČial Ć®n cÄsuČa
(š„, š¦), atunci se considerÄ cÄ Gimi a trecut deja prin acea cÄsuČÄ.
Subtaskuri
- š¶ = 1, š = 1 Či š¾ ā š Ā· š
- š¶ = 1, š¾ = š Ā· š
- š¶ = 1, 2 ⤠š , š ⤠60, 1 ⤠š¾ ⤠100 Či š¾ ā š Ā· š
- š¶ = 1, 60 < š , š ⤠500, 1 ⤠š¾ ⤠20 000 Či š¾ ā š Ā· š
- š¶ = 2, š = 1 Či š¾ ā š Ā· š
- š¶ = 2, š¾ = š Ā· š
- š¶ = 2, 2 ⤠š , š ⤠60, 1 ⤠š¾ ⤠100 Či š¾ ā š Ā· š
- š¶ = 2, 60 < š , š ⤠500, 1 ⤠š¾ ⤠20 000 Či š¾ ā š Ā· š
- š¶ = 3, 1 ⤠š¾ ⤠100, 1 ⤠š ⤠10 000
- š¶ = 3, 100 < š¾ ⤠1 000, 1 ⤠š ⤠100 000
- š¶ = 3, 1 000 < š¾ ⤠5 000, 1 ⤠š ⤠500 000
- š¶ = 3, 1 000 < š¾ ⤠5 000, 500 000 ⤠š ⤠2 500 000
- š¶ = 3, 5 000 < š¾ ⤠8 000
- š¶ = 3, 8 000 < š¾ ⤠20 000
Exemplul 1
blind.in
1 2 3 1 1 0 0 1 1 2 2
blind.out
1 2 2 2
Exemplul 2
blind.in
2 2 3 1 1 0 0 1 1
blind.out
1 2 2 2 2 3 2 2 1 2 1 1
Exemplul 3
blind.in
3 2 3 1 1 0 0 1 1 7 1 2 2 2 2 3 2 2 1 2 1 1 1 2
blind.out
6
ExplicaČie
Pentru primul exemplu, analizÄm fiecare poziČie de start:
(1, 1) ā (1, 2) ā (2, 2)(1, 2) ā (1, 2) ā (2, 2)(2, 2) ā (1, 2) ā (2, 2)(2, 3) ā (2, 3) ā (2, 2)
Toate traseele trec prin cÄsuČa (2, 2) cel puČin odatÄ. De precizat cÄ, dacÄ Gimi s-ar fi aflat iniČial Ć®n cÄsuČa (2, 2), atunci se considerÄ ca el deja a trecut prin acea cÄsuČÄ. De asemenea, se observÄ cÄ atunci cĆ¢nd Gimi se aflÄ Ć®n celula (2, 3) Či primeČte instrucČiunea de a se deplasa Ć®n celula (1, 2), acesta practic stÄ pe loc.
Pentru al doilea exemplu, analizÄm fiecare poziČie de start:
(1, 1) ā (1, 2) ā (2, 2) ā (2, 3) ā (2, 2) ā (1, 2) ā (1, 1)(1, 2) ā (1, 2) ā (2, 2) ā (2, 3) ā (2, 2) ā (1, 2) ā (1, 1)(2, 2) ā (1, 2) ā (2, 2) ā (2, 3) ā (2, 2) ā (1, 2) ā (1, 1)(2, 3) ā (2, 3) ā (2, 2) ā (2, 3) ā (2, 2) ā (1, 2) ā (1, 1)
Toate traseele trec prin fiecare cÄsuČÄ marcatÄ cu 1 cel puČin odatÄ.
Pentru al treilea exemplu, primele 6 instrucČiuni ne garanteazÄ faptul cÄ, indiferent de poziČia de start a lui Gimi, el va vizita toate celelalte cÄsuČe. Efectuarea celei de-a 7 instrucČiuni nu este necesarÄ.