Pereiti prie turinio

Rekomenduojami pranešimai

Sveiki, reikia man išspresti tokį uždavinuką, bet niekaip nepagaunu kampo. Būtų labai gerai jei užvestumėte ant kelio:

 

5. Reikia įveikti kelyje esančias kliūtis. Kliūčių ruožas padalintas į n x m kvadratų (n ≤ 12, m ≤ 12). Galima judėti tik šviesiais kvadratais – tamsiuose yra kliūtys, todėl jais eiti negalima. Iš vieno šviesaus kvadrato pereiti į kitą galima tik tada, kai jie liečiasi kraštinėmis.

Reikia rasti trumpiausią kelią per kliūčių ruožą. Jeigu yra keli trumpiausi keliai – tinka bet kuris. Kelio ilgis matuojamas pereitų kvadratų skaičiumi.

Pradiniai duomenys surašyti faile duom.txt. Pirmoje eilutėje parašyti du tarpu atskirti skaičiai n ir m. Toliau yra n eilučių ir kiekvienoje jų yra po m simbolių. Kliūtys vaizduojamos žvaigždutės (*) simboliu, kvadratai, per kuriuos galima eiti – taškais (.).

Rezultatai rašomi į failą rez.txt. Pirmoje eilutėje rašomas surasto trumpiausio kelio ilgis. Jei kelio nėra, atsakymas turi būti nulis. Likusiose n eilučių – kliūčių ruožas, kuriame simboliais „+“ pažymėtas vienas trumpiausių kelių. Jeigu nėra nė vieno kelio per kliūčių ruožą, kliūčių ruožas rezultatų faile turi sutapti su pradinių duomenų faile pateiktu kliūčių ruožu

 

Pavyzdys:

 

Pradiniai duomenys:
6 10
**********
********..
*****....*
......****
*****.....
**********

Rezultatai:
11
**********
********..
*****....*
++++++****
*****+++++
**********

 

Kaip rasti kelia žinau, bet neisivaizduoju kaip/kur ta kelia išsisaugoti, kad galečiau lyginti su kitais keliais.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

susiskaidai visą į matricą(masyvus masyvuose), ir tada eini per tą matricą ir žiūri ar ne ant taško stovi. Jei užkliudai tokį inicijuoji ėjimą keliu(tikrini aplinkui tašką, ar yra praėjimas) ir vaikštai/skaičiuoji. Tada sudėlioji pliusus kur reik, ir parašai atsakymą, viską surašai į rez.txt

 

Čia toks brute-force, bet manau tiks.

Redagavo nagisa
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...