Informatică, întrebare adresată de gigel131, 8 ani în urmă

Epur iepurașul dorește să epureze niște apă folosind stațiile de epurare aflate pe o câmpie de formă pătrată având latură n. Epur iepurașul începe să epureze de la stația de epurare aflată la coordonatele (1, 1). După ce apa epurată la stația de epurare de pe coordonatele (x, y) e pură, Epur se va deplasa la o stație care are ambele coordonate mai mari sau egale cu coordonatele curente. Epur Iepurașul este obligat de Legea Epurării pentru Iepuri să epureze și la stația situată la coordonatele (n, n). Se știe că fiecare stație de epurare oferă un grad de puritate număr întreg. Când Epur iepurașul își epurează apa la stația aflată la (x, y), gradul de puritate ale apei sale crește cu gradul oferit de stația de epurare folosită. Ajutați-l pe Epur Iepurașul ca, epurând apa sa la stațiile de epurare să obțină un grad de puritate maxim.

Răspunsuri la întrebare

Răspuns de Seckar
1
Problema aceasta se face cu backtracking(nu are rost sa iti pun codul deoarece se gaseste printr-o banala cautare google, nu are rost sa dau un copy paste aiurea aici).

Citeste backtracking, pentru ca este practic copy paste, tu trebuie doar functia de validare sa o modifici in asa fel incat mereu sa fie celula curent cu un x si un y mai mari sau agele cu cele precedente. 

Si sa faci si o verificare finala ca ultima casuta sa fie (n,n). Dupa ce ai aceste posibile trasee, memorate probabil ca vectori de perechi(iti poti face un struct position cu 2 membrii x si y) ale coordonatelor, tot ce trebuie e sa vezi care traseu aduce o suma mai mare a "punctelor" de epurare si gata!

Spor!
Alte întrebări interesante