Afişează mesaje
|
|
Pagini: [1]
|
|
2
|
infoarena - concursuri, probleme, evaluator, articole / Teme / Am si eu nevoie de ajutor in legatura cu o problema cu un zar
|
: Aprilie 22, 2008, 17:07:12
|
|
Am de rezolvat o problema si nu am nici cea mai mica idee cum sa o rezolv in limitele impuse...adica 3 secunde si maxim 20 de mega de memorie. Va rog daca se poate sa imi spuneti si mie "idee principala". O sa postez aici enuntul problemei. Implementarea pe care am incercato eu presupune impartirea ficarui nod in 4 noduri... problema este ca se ajunge la 40 000 de noduri si avand in vedere ca Dijkstra are O(N^2) timpul de executie a fost mult peste 3 secunde. Va multumesc anticipat!
Se da o tabla asemanatoare cu o tabla de sah, de dimensiune NxN. Pe o casuta de pe tabla se afla un zar; zarul are laturile egale ca lungime cu laturile casutei si ocupa perfect suprafata acesteia (adica laturile fetei de jos sunt suprapuse peste laturile casutei). Pe fiecare fata a zarului este inscriptionat câte un numar întreg între 1 si 100.
Zarul poate fi deplasat de pe o casuta pe una vecina printr-o rotatie de 90° în jurul uneia dintre laturile casutei ocupate. Prin deplasari succesive, zarul poate ajunge în orice pozitie de pe tabla. Se defineste costul unui astfel de drum ca suma numerelor aflate pe fata de jos a zarului, inclusiv cele pentru prima si ultima casuta din traseu.
Dându-se dimensiunea tablei N, cele sase valori de pe fetele cubului, pozitia initiala a acestuia pe tabla si coordonatele unei casute pe care acesta trebuie sa ajunga, se cere sa gaseasca si sa se afiseze un drum de cost minim de la casuta initiala la casuta destinatie.
Date de intrare (fisierul cub.in):
N // dimensiunea tablei
fata spate stânga dreapta sus jos // cele 6 valori ale numerelor de pe fete
x1 y1 x2 y2 // coordonatele casutelor sursa, respectiv destinatie, cu numerotare de la 1 la N
Datele de iesire (fisierul cub.out):
C // costul drumului
L // lungimea drumului, ca numar de casute (inclusiv cea initiala si cea finala)
x1 y1
x2 y2
.....
xL yL // coordonatele casutelor prin care trece drumul
Observatie: initial cubul este asezat cu fata “fata†orientata în directia pozitiva a axei Y, fata “sus†în directia pozitiva a axei Z si fata “dreapta†în directia pozitiva a axei X.
Toate coordonatele încep de la 1.
Limite:
1 <= N <= 100
Exemplu:
INPUT: 8 2 1 1 8 1 1 3 2 4 2
OUTPUT: 6 6 3 2 3 1 2 1 2 2 3 2 4 2
|
|
|
|
|