Uusi putkaposti kolahti viimein luukusta:
https://www.ohjelmointiputka.net/postit/tehtava.
Miten löytää reitti labyrintin maaliin, kun suunnanvaihdot on määrätty etukäteen?
Ihan mukava tehtävä, varsin triviaali, hyvää Datatähti-tasoa, tai sitten ratkaisin väärin. ;) Koodia kertyi C++:lla 200 riviä, josta noin 100 kului tyyppimäärittelyihin ja muuhun "ylimääräiseen", kun nyt pitkästä aikaa innostuin leikkimään tyylikkäillä luokilla. Varsinainen algoritmi on vain joitakin kymmeniä rivejä pitkä.
Tehtävänannosta ei ainakaan minun silmiini sattunut kohtaa, jossa olisi selkeästi mainittu, että kyseessä täytyy olla juuri peräkkäisten painallusten. Tietenkin tämä on aivan loogista, mutta toisaalta miksei Uolevi voisi välillä jättää peliään kesken ja käydä selaamassa Ohjelmointiputkaa?
Postilaatikko ei näytä olevan samaa mieltä siitä, mikä tehtävässä oli tavoiteltava ratkaisu, kun yhä näkyy 1177 parhaana vastauksena.
Selvensin tehtävänantoa kirjoittamalla sopivaan paikkaan sanan "yhtäjaksoinen". Nyt myös sivupalkkiin tulee näkyviin pienin eikä suurin tulos.
Metabolix kirjoitti:
Ihan mukava tehtävä, varsin triviaali, hyvää Datatähti-tasoa, tai sitten ratkaisin väärin. ;)
Taisit ratkaista väärin. :)
Oman ratkaisuni ajoaika on suunnilleen 20s ja rivejä on vajaa 100. Jos 147 osoittautuu optimaaliseksi (en ole täysin varma), niin tuskin viitsin tuota paljoa optimoida.
Tänään tulee myös euleriin uusi ongelma.
Jaha, varmaan on sitten jotain jäänyt vielä muuttamatta siitä versiosta, joka ei huomioinut, että rivin piti olla yhtenäinen. Pitäisi varmaan sellaisessa tilanteessa tehdä algoritmi suosiolla uusiksi eikä vain todeta, että "tässähän tarvitaan vain pari muutosta"... ... Joo, juuri tästähän se oli kiinni, löytyi parissa minuutissa, kun luki ajatuksella koodin. :)
Ratkaisuni laskee koko pakettia 0,2 sekuntia. Ajatuksen tasolla algoritmi on oikea (eli tulos on optimaalinen), ohjelmointivirheet ovat tietenkin aina mahdollisia. Pieni optimointikin (erityisesti isoja tasoja varten) olisi vielä mahdollista, siitä ei sen enempää tässä.
Cvqrgääa lyyä gnhyhxxbn, wbffn bing xäfvgrygäiääa ancvacnvanyyhxfrra cääggliäg cneunng engxnvfhg xhuhaxva ehhghha, nyhxfv fvvf inva yäugöehhqhffn gneivggnivn cnvanyyhxfvn abyyn, zhhnyyn ääergöa. Wbxn flöggrra xbuqnyyn cävivgrgääa gnhyhxxbn avva, rggä wbxn ehhqhfgn yvvxhgnna flöggrra zhxnvfrfgv wn zrexvgääa hhqrg znuqbyyvfrg fvwnvaavg. Xvreebxfra ybchffn cbvzvgnna gnygrra ybcchehhghha wbugnahg nfxryfnewn, wbf fr ba cnerzcv xhva ragvara ruqbxnf.
Fnngnin ghybf ba bcgvznnyvara, xbfxn nyxhgvynaar ba bcgvznnyvara wn cävivglxfrg gruqääa avva, rggä wbxn ehhghha ghyrr fvvura wbugnivfgn invugbruqbvfgn cnenf. Cävivglxfra lugrlqrffä hhqrg fvwnvaavg gälgll zrexvgä hhgrra gnhyhxxbba, wbxn ba nyhfgrggh znvavgghha bcgvznnyvfrra nyxhgvynna. Wbf cävivglf grugävfvva nvan xhyybvfrraxva gvynagrrfrra, engxnvfh uliäxflvfv zlöf fnewbwn, wbvqra ancvacnvanyyhxfrg rviäg byr creäxxäva. Yvvxxhzvfra lugrlqrffä gälgll zhvfgnn, rggä crynnwn ibv clflä cnvxnyynna, wbf wn inva wbf uäa göezää urgv frvaääa, wn gäyyövaxva yvvxxhzvfzääeä ba fhherzcv xhva abyyn nfxrygn. Znvavghffn rv-lugraävfrffä irefvbffn gägä rv gneivgfr uhbzvbvqn.
Ei toi nyt ihan triviaali ollut :) Piti nukkua yön yli ennen kuin tuon ratkaisevan kikan keksi. Ei tuossa ajossa lopulta mennyt edes sekunnin kymmenystä.
Rot13
Xälgva aäxöwääa zryxb fnznaynvfgn vqrnn xhva Zrgnobyvk ghbffn fcbvyrevffn, zhggn crehfnytbevgzvan ghbffn gbvzv N*.
Paransin äsken putkapostien vastausten näyttöä niin, että ensimmäisenä on parhaan vastauksen ensin lähettänyt eikä myöhemmin tulostaan parantanut jonkin vastauksen ensin lähettänyt. Tästä lähtien ei siis tarvitse varata kärkipaikkaa lähettämällä mahdollisimman nopeasti edes jonkin vastauksen. Myös vanhat "vääryydet" ovat korjaantuneet.
Tuo palautus sivu antaa "Testisyötteiden joukossa ei ole nauhoitetta, jonka pituus olisi xxxxxxxxxx" merkkiä. Tuo xxxx siis koostuu numeroista 1-9, 10 merkkiä ensimmäisessä labyrintissä. Pitääkö minun katkaista syöte siihen pisteeseen jossa se päätyy maaliin vai pitääkö vastauksessa olla kaikki 5 labyrinttiä (en ole vielä kaikkia ratkaissut, joku typo taas jossain kai niin ei optimoitu koodi toimi :P).
[Offtopic]
Putkapostissa lukujenvihaaja https://www.ohjelmointiputka.net/postit/tehtava.
[Offtopic]
teksturi kirjoitti:
[Offtopic]
Putkapostissa lukujenvihaaja https://www.ohjelmointiputka.net/postit/tehtava.php?tunnus=lukuv on tullut virhe tuloksissa. Esimerkiksi villep:llä pitäisi olla 17 ja minullakin kait on 17 jos oikein muistan.
[Offtopic]
Itsekin muistan selvästi tuon ratkaisseeni... (17 siis.)
User137 kirjoitti:
Tuo palautus sivu antaa "Testisyötteiden joukossa ei ole nauhoitetta, jonka pituus olisi xxxxxxxxxx" merkkiä.
Onko vastaus varmasti oikeassa muodossa (ensin koko syötteen pituus, sitten aloituskohta, sitten ajastukset)? Jos ongelma ei ratkea, voit lähettää minulle sähköpostilla vastauksen, jota palautussivu ei hyväksy, jolloin voin tutkia asiaa tarkemmin. Vastauksessa ei tarvitse ilmoittaa ratkaisua kaikkiin labyrintteihin, vaan niistä voi valita mitkä tahansa.
teksturi kirjoitti:
Putkapostissa lukujenvihaaja - - on tullut virhe tuloksissa.
Kiitos ilmoituksesta, nyt tämän tehtävän tulosten pitäisi olla oikein.
Ai juu ei ollut oikeassa formaatissa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.