Soluții trimise

Rezumat problemă

Pădurea magică din Povestea lui Negrimon este situată pe un teren dreptunghiular care poate fi privit ca o matrice cu N linii, numerotate de la 1 la N şi M coloane, numerotate de la 1 la M. Putem spune că terenul este împărţit în N * M
parcele pătrate de latură 1. În pădure trăieşte şarpele Snake care, iniţial, este lung cât K parcele şi lat cât una singură. La începutul poveştii şarpele se află pe prima linie, pe parcelele de la 1 la K, capul fiind pe poziţia K şi orientat spre est.

Snake se deplasează cu o parcelă pe secundă. Astfel, după prima secundă, şarpele se va afla tot pe linia 1, deplasat cu o poziţie spre dreapta, mai exact capul va fi în parcela K + 1. Deplasarea se face simultan cu întreg corpul.

În pădure au loc E evenimente ce pot fi de tipurile următoare:

  1. Apariţia unui măr la secunda st pe linia x şi coloana y, care va dispărea la secunda en, dacă nu este mâncat până atunci de şarpe. Snake înghite mărul când capul său ajunge în parcela care îl conţine. Mărul dispare, desigur, iar corpul şarpelui creşte instantaneu cu o unitate care îi va fi adăugată la coadă şi va ocupa aceeaşi parcelă pe care s-a aflat coada (ultima porţiune din corp) la secunda anterioară înghiţirii mărului.
  1. Apariţia unui schimbător la secunda st pe linia x şi coloana y, care va dispărea la secunda en şi care are valoarea v. Când capul şarpelui ajunge în parcela schimbătorului, direcţia ulterioară de deplasare va fi dată de valoarea v ∈ {1, 2, 3, 4} cu semnificaţia: 1 Nord (sus); 2 Est (dreapta); 3 Sud (jos); 4 Vest (stânga).

Schimbătorul funcţionează astfel: de exemplu, dacă Snake se deplasează spre Est şi la o anumită secundă capul acestuia ajunge într-o parcelă unde se află un schimbător cu valoarea 1, la următoarea secundă capul se va afla în parcela situată deasupra schimbătorului şi în parcela schimbătorului se află prima porţiune din corpul şarpelui.

Schimbătorul dispare exact în secunda en iar până atunci rămâne în matrice indiferent de câte ori Snake trece prin parcela acestuia. Schimbătorul va acţiona doar când capul lui Snake ajunge în parcela lui şi nu va exista nicio situaţie în care să se schimbe direcţia în sens opus celei din care vine. De exemplu, dacă direcţia lui Snake este spre Est, nu va întâlni un schimbător cu valoarea 4, care l-ar întoarce spre Vest.

În fiecare secundă s, evenimentele se petrec în acestă ordine: dispar obiectele programate să dispară în secunda s, apar obiectele ce trebuie să apară în secunda s, Snake se deplasează cu o parcelă. Dacă printr-o combinaţie nefericită de mişcări, Snake se loveşte de propriul corp, el se blochează şi aşteptă serviciul de asistenţă a pădurii.

Deoarece Snake se află într-o pădure magică, deplasarea lui respectă reguli speciale: când capul este pe ultima coloană din matrice şi se mişcă spre Est, el reapare pe aceeaşi linie, dar pe prima coloană, trăgând corpul simultan. Analog şi pentru prima coloană, când se deplasează spre Vest, capul reapare pe aceeaşi linie dar pe ultima coloană. Dacă şarpele se află pe prima linie şi se deplasează spre Nord, mişcarea va continua pe ultima linie şi aceeaşi coloană din matrice. Analog pentru ultima linie, când Snake se deplasează spre Sud, capul reapare pe prima linie şi aceeaşi
coloană. Aceste mişcări au loc doar dacă Snake nu se blochează în propriul corp.

Povestea se termină în secunda în care apare oricare dintre situaţiile: Snake se loveşte de propriul corp, caz în care el rămâne BLOCAT; toate cele E evenimente s-au produs şi nu mai există niciun obiect în matrice pentru că toate au
dispărut, caz în care rămâne un şarpe LIBER.

Cerința: În funcţie de finalul poveştii, afişaţi starea lui Snake şi harta pădurii în secunda respectivă. Pe hartă trebuie să fie marcate parcelele ocupate de corpul lui Snake, inclusiv capul.

ID   Utilizator Problema Data încărcării Stare
best in buzau (BestInBuzau) Culegere 27 Septembrie 2024, 01:59 Evaluare finalizată 100
POPESCU ANDREI (andreip99) Culegere 11 Iulie 2024, 13:52 Evaluare finalizată 100
Adrian Statescu (thinkphp) Culegere 24 Iunie 2024, 08:21 Evaluare finalizată 100
Coroama Cristian (cristicoroama) Culegere 25 Aprilie 2024, 22:15 Evaluare finalizată 100
sofronea Vlad (vladsoarta) Culegere 15 Aprilie 2024, 11:34 Evaluare finalizată 0
sofronea Vlad (vladsoarta) Culegere 15 Aprilie 2024, 11:24 Evaluare finalizată 0
sofronea Vlad (vladsoarta) Culegere 29 Martie 2024, 23:23 Evaluare finalizată 0
sofronea Vlad (vladsoarta) Culegere 29 Martie 2024, 23:18 Evaluare finalizată 0
sofronea Vlad (vladsoarta) Culegere 29 Martie 2024, 23:13 Evaluare finalizată 0
sofronea Vlad (vladsoarta) Culegere 29 Martie 2024, 23:07 Evaluare finalizată 0
sofronea Vlad (vladsoarta) Culegere 29 Martie 2024, 23:05 Evaluare finalizată 0
sofronea Vlad (vladsoarta) Culegere 29 Martie 2024, 21:07 Evaluare finalizată 0
sofronea Vlad (vladsoarta) Culegere 29 Martie 2024, 20:53 Evaluare finalizată 0
sofronea Vlad (vladsoarta) Culegere 29 Martie 2024, 11:56 Evaluare finalizată E.C
sofronea Vlad (vladsoarta) Culegere 28 Martie 2024, 23:35 Evaluare finalizată 0
sofronea Vlad (vladsoarta) Culegere 28 Martie 2024, 23:11 Evaluare finalizată 0
Griga Victor (victorgriga) Culegere 22 Martie 2024, 19:59 Evaluare finalizată 100
Griga Victor (victorgriga) Culegere 22 Martie 2024, 19:48 Evaluare finalizată 80
Griga Victor (victorgriga) Culegere 22 Martie 2024, 19:44 Evaluare finalizată 40
Griga Victor (victorgriga) Culegere 22 Martie 2024, 19:29 Evaluare finalizată 80
Griga Victor (victorgriga) Culegere 22 Martie 2024, 19:20 Evaluare finalizată 56
Griga Victor (victorgriga) Culegere 22 Martie 2024, 19:18 Evaluare finalizată 56
Griga Victor (victorgriga) Culegere 22 Martie 2024, 19:15 Evaluare finalizată 40
Griga Victor (victorgriga) Culegere 22 Martie 2024, 19:10 Evaluare finalizată 36
Griga Victor (victorgriga) Culegere 22 Martie 2024, 19:09 Evaluare finalizată 16
Griga Victor (victorgriga) Culegere 22 Martie 2024, 19:06 Evaluare finalizată 40
Griga Victor (victorgriga) Culegere 22 Martie 2024, 19:03 Evaluare finalizată 32
Raileanu Alexandru (AlexandruR2008) Culegere 22 Martie 2024, 12:17 Evaluare finalizată 100
Manescu Andrei (andrei_2023) Culegere 12 Martie 2024, 20:19 Evaluare finalizată E.C
cuc sergiu (sergiu2010) Culegere 06 Martie 2024, 15:36 Evaluare finalizată 100
Anca Leuciuc (AncaLeuciuc) Culegere 06 Decembrie 2023, 21:25 Evaluare finalizată 100
Puiu Alexandra (a_puiu) Culegere 12 Octombrie 2023, 00:21 Evaluare finalizată 100
Radu Andrei (Radu_andrei06) Culegere 17 Septembrie 2023, 13:20 Evaluare finalizată 100
Negoita Deivid-Bogdan (Bogdan_Deivid) Culegere 04 August 2023, 02:32 Evaluare finalizată 80
Negoita Deivid-Bogdan (Bogdan_Deivid) Culegere 04 August 2023, 00:51 Evaluare finalizată 80
Negoita Deivid-Bogdan (Bogdan_Deivid) Culegere 04 August 2023, 00:48 Evaluare finalizată 80
Negoita Deivid-Bogdan (Bogdan_Deivid) Culegere 04 August 2023, 00:47 Evaluare finalizată 12
Negoita Deivid-Bogdan (Bogdan_Deivid) Culegere 29 Iulie 2023, 02:40 Evaluare finalizată E.C
Dumitru Ioan (W1zard) Culegere 28 Iulie 2023, 20:22 Evaluare finalizată 100
Tudurachi Călin (colan007) Culegere 23 Iunie 2023, 19:40 Evaluare finalizată 100
Bondoc Alexandru (alexbondoc) Culegere 18 Mai 2023, 17:53 Evaluare finalizată 100
Hadarean Andrei (hadarean_andrei2010) Culegere 06 Martie 2023, 09:13 Evaluare finalizată E.C
Hadarean Andrei (hadarean_andrei2010) Culegere 06 Martie 2023, 09:12 Evaluare finalizată E.C
Hadarean Andrei (hadarean_andrei2010) Culegere 06 Martie 2023, 09:11 Evaluare finalizată E.C
Hadarean Andrei (hadarean_andrei2010) Culegere 06 Martie 2023, 09:09 Evaluare finalizată E.C
Bogdan Gheorghe (Gheorghe_Bogdan) Culegere 21 Ianuarie 2023, 11:06 Evaluare finalizată 100
meditatii-informatica.com | Gabriel (arcker) Culegere 01 Ianuarie 2023, 16:30 Evaluare finalizată 100
Banescu Stefan Sebastian (BanescuStefanSebastian) Culegere 12 Decembrie 2022, 22:24 Evaluare finalizată 100
Banescu Stefan Sebastian (BanescuStefanSebastian) Culegere 12 Decembrie 2022, 22:13 Evaluare finalizată 0
Tanasă George (gogoki04) Culegere 12 Octombrie 2022, 22:20 Evaluare finalizată 100