Se consideră o matrice cu linii și coloane care memorează doar cifre. Liniile și coloanele sunt numerotate de la la . Se consideră de asemenea un vector de lungime , în care costul cifrei (). Trebuie să determinăm un drum de la coloana la coloana , deci care pornește de la o componentă aflată pe coloana la o componentă de pe coloana și fiecare pas se face dintr-o poziție într-una din pozițiile învecinate pe linie sau coloană, adică , , , , cu condiția să nu iasă din matrice. Costul unui astfel de drum este suma costurilor asociate componentelor prin care trece drumul.
Cerință
Să se determine numărul minim de cifre distincte prin care trece un drum de la coloana la coloana . Dacă există mai multe astfel de drumuri, atunci se va determina costul minim al unui astfel de drum.
Date de intrare
Fișierul de intrare road.in
conține pe prima linie valoarea . Pe a doua linie se află exact numere naturale , , , separate prin câte un spațiu. Pe următoarele linii se află câte cifre, fără spații între ele.
Date de ieșire
Fișierul de ieșire road.out
va conține pe prima linie un număr natural reprezentând numărul minim de cifre distincte prin care trece un drum de la coloana la coloana . Pe linia a doua se află un singur număr natural reprezentând costul minim al unui drum care trece prin cifre distincte.
Restricții și precizări
- ,
Exemplu
road.in
6
8 1 2 1 9 14 8 8 6 9
287566
123444
983070
071311
548739
353665
road.out
3
9
Explicație
Drumul este marcat cu fundal gri în matricea de mai jos și folosește doar trei cifre distincte (, și ), iar costul drumului este .
De remarcat că mai există un drum care utilizează doar trei cifre distincte (format din toate elementele de pe ultima linie), dar are cost mai mare.