Trimis: Sâm Dec 19, 2009 1:04 pm Titlul subiectului: problema serioasa ..need help
am o problema foarte serioasa , si va cer ajutorul !
probabil vi se va parea ciudata ...
multumesc anticipat
Robotul Distrugator (problema preluata de la challenge24)
Introducere:
Viata era usoara si fericita pe cea de-a treia planeta din sistemul Sirius 8: oamenii traiau si lucrau fericiti in multe colonii pasnice. Imperiul klingon insa decide sa isi extinda controlul si in aceasta parte a galaxiei: ei au aterizat un Robot Distrugator pe suprafata planetei. Robotul Distrugaotr se va duce la o colonie si o va distruge complet. Daca noi am sti ce colonie urmeaza Robotul Distrugator sa atace, atunci s-ar putea concentra toate fortele pentru a apara acea colonie. Din fericire am reusit sa interceptam comenzile transmise de klingoni catre Robotul Distrugator, fiind astfel posibil sa ii determinam destinatia finala.
Trebuie sa scrieti un program care determina care este urmatoarea colonie ce va fi atacata de catre Robotul Distrugator. Planeta este considerata ca o suprafata plana si orice punct poate fi descris usor cu 2 coordonate. ESTUL este pe axa X. NORDUL este pe axa Y.
Date de intrare:
• Fecare fisier de intrare incepe cu o linie continind patru intregi:
• n <= 500, numarul de comenzi,
• m <= 100, numarul de colonii,
• x si y, coordonatele de start ale Robotului Distrugator
Prima linie este urmata de "n" linii, fiecare din ele continind cite o comanda fiecare. Exista 5 tipuri comenzi diferite:
• LEFT p: intoarce la stinga "p" grade
• RIGHT p: intoarce la dreapta "p" grade
• FASTER p: mareste viteza cu "p" unitati
• SLOWER p: micsoareaza viteza cu "p" unitati
• WAIT p: Robotul distrugator merge timp de "p" unitati in directia si cu viteza curenta
Viteza este data in unitati de coordonate pe unitati de timp. Se presupune ca viteza maxima cu care poate merge robotul este de 500 si viteza minima 0 (chiar daca comenzile depasesc aceste limite). Dupa aterizare, Robotul Distrugator este orientat catre NORD, si are viteza 0. Comenzile LEFT, RIGHT, FASTER, SLOWER sint executate instantaneu, Robotul Distrugator nu se deplaseaza in timpul acestor comenzi.
Ultimele "m" linii din fisierul de intrare descriu coloniile. Fiecare linie incepe cu un nume de colonie de lungime maxim 20 ce nu contine spatii. Numele este urmat de cele doua coordonate ale coloniei.
Trebuie sa afisati numele coloniei unde se va afla Robotul Distrugator dupa executarea tuturor comenzilor.
Se presupune ca Robotul Distrugator va fi in final la o distanta de cel mult 10 unitati de o colonie (si va fi doar o singura colonie aflata in aceasta situatie)
Este posibil ca Robotul Distrugator sa treaca prin alte colonii in timp ce executa comenzile, dar nu ne intereseaza acest lucru (nu ne intereseaza decit destinatia finala)
Exemplu de fisier de intrare:
5 4 0 0
FASTER 10
WAIT 10
RIGHT 135
SLOWER 5
WAIT 28
Aaaa 0 0
Bbbb 100 100
Cccc 0 100
Dddd 100 0
Trimis: Sâm Dec 19, 2009 4:09 pm Titlul subiectului:
Asa, ai o problema relativ banala care implica adunari, scaderi si instructiunea for. Ce ai incercat, ce nu ti-a iesit?
LE: pardon, mai implica si functiile sin() si cos() - nu vazusem ca left si right alea spun cite grade te intorci. Presupun ca aici ai probleme de fapt, nu stii cum sa faci operatii cu vectori 2D. Ce clasa esti? _________________ Breviar de personalitati
Trimis: Sâm Dec 19, 2009 9:26 pm Titlul subiectului:
Desi am mai spus-o si ma repet, pot spune cu tarie ca specialitatea mea este Delphi si deci implicit Pascal. Problema mi se pare hilara desi la prima vedere mi-ar intra in jur de 300 de linii de cod. Asta in conditiile in care nu stiu inca prea bine C.
Si algoritmul pe care il propui dezbaterii care e? Ca noi poate am scapat ideea ta... _________________ Beware! Addictive game ahead!
Trimis: Sâm Dec 19, 2009 9:30 pm Titlul subiectului:
Razor23 a scris:
Desi am mai spus-o si ma repet, pot spune cu tarie ca specialitatea mea este Delphi si deci implicit Pascal. Problema mi se pare hilara desi la prima vedere mi-ar intra in jur de 300 de linii de cod. Asta in conditiile in care nu stiu inca prea bine C.
Si algoritmul pe care il propui dezbaterii care e? Ca noi poate am scapat ideea ta...
vreau macar un inceput , o idee ..nici nu stiu cum sa incep
in C++ trebuie facut algoritmul
Trimis: Sâm Dec 19, 2009 9:51 pm Titlul subiectului:
jos8cal a scris:
Incepe cu a invata C++.
daca ar fi fost o problema din cele "clasice" care se fac la seminarii/laboratoare , nu mai incurcam lumea pe forum ..dar e evident ca nu se incadreaza in niciun tipar
Trimis: Sâm Dec 19, 2009 10:43 pm Titlul subiectului:
Pai este o problema clasica daca ai puterea sa ignori povestea aia SF de 2 lei. Trebuie sa deschizi fisierul, sa citesti si sa executi comenzile din el. Clasicul seminaristic aici este sa deschizi fisiere si sa citesti din ele. Si daca esti student si inca nu stii sa deschizi un fisier, schimba scoala.
LE: Cit priveste algorimul, tot ce trebuie sa faci este sa recapitulezi vectorii invatati la fizica prin a 9-a parca.
Ultima modificare efectuată de către jos8cal la Dum Dec 20, 2009 2:34 am, modificat de 1 dată în total
Nu puteți crea un subiect nou în acest forum Nu puteți răspunde în subiectele acestui forum Nu puteți modifica mesajele proprii din acest forum Nu puteți șterge mesajele proprii din acest forum Nu puteți vota în chestionarele din acest forum