.campion
conectare | înregistrare | căutare
Pagina principală » Probleme » robot2

ultima problemă
grupă: mică
sursă: OMI 2016
ultimul articol
autor: Prof. Radu Vişinescu
ultimul software
autor: Prof. Emanuela Cerchez
.campion
robot2


Timp maxim de executie/test:
0.1 secunde
Memorie totala disponibila/stiva:
16 MB/1 MB

Lucrati la o firma care produce microprocesoare. Pentru asamblarea microprocesoarelor, firma utilizeaza un robot constituit dintr-un singur brat. Bratul este fixat la unul dintre capete ("umarul") într-un punct plasat în centrul platformei de lucru, iar la celalalt capat are un dispozitiv de lungime neglijabila cu care poate "culege" componentele de pe platforma de lucru ("mâna"). Bratul se poate misca numai în plan orizontal, deasupra platformei de lucru.
Bratul este constituit dintr-o succesiune de N segmente rigide de lungimi L1, L2, ..., LN, conectate prin puncte de articulatie. Mai exact, segmentul 1, este conectat printr-un punct de articulatie în umarul robotului, segmentul 2 este conectat printr-un punct de articulatie de segmentul 1, ..., segmentul N este conectat printr-un punct de articulatie de segmentul N-1 si are la celalalt capat "mâna". Un punct de articulatie permite rotatia libera (la orice unghi) a segmentului conectat în acel punct de articulatie.
Pentru asamblarea unui microprocesor robotul trebuie sa culeaga succesiv componentele acestuia de pe platforma de lucru. Fiecare componenta are o pozitie bine determinata pe platforma de lucru, prin coordonatele sale relativ la un sistem de coordonate cartezian, cu centrul în umarul robotului.
Rolul dvs. în firma este de a programa miscarile robotului. În acest scop, pentru fiecare componenta pe care robotul o va culege trebuie sa specificati "configuratia" bratului robotului care sa permita atingerea componentei respective (mâna robotului sa fie plasata deasupra pozitiei în care se afla componenta).
Configuratia bratului robotului este definita de unghiurile dintre segmentele bratului rigid.


Cerinta

Scrieti un program care, pentru o pozitie data, determina o configuratie pentru bratul robotului care sa-i permita acestuia sa culeaga componenta din pozitia respectiva, daca este posibil.

Date de intrare

Fisierul de intrare robot2.in contine pe prima linie un numar natural N, care reprezinta numarul de segmente din care este format bratul robotului.
Pe fiecare dintre urmatoarele N linii se afla câte un numar natural. Numarul aflat pe linia i+1 este lungimea celui de-al i-lea segment al bratului robotului.
Pe ultima linie se afla doua numere întregi x si y, separate prin câte un spatiu, reprezentând coordonatele pozitiei la care trebuie sa ajunga "mâna" robotului.

Date de iesire

Fisierul de iesire robot2.out contine o singura linie pe care se afla valoarea 0 daca nu este posibil ca mâna robotului sa ajunga în pozitia x, y. Daca problema are solutie, fisierul de iesire contine N linii. Pe linia i se afla valoarea reala ui care reprezinta unghiul dintre segmentul i si segmentul i-1 (pentru orice i de la 2 la N), iar valoarea u1 reprezinta unghiul pe care segmentul 1 îl formeaza în umarul robotului cu axa OX.

Restrictii si precizari

  • 1<N<=10000
  • 0<Li<=200
  • 0<=ui<360
  • -100000<=x, y<=100000
  • Unghiurile se masoara în sens trigonometric si sunt exprimate în grade.
  • Programul de evaluare va verifica daca punctul în care este plasata mâna robotului pentru configuratia data de dvs. (xp, yp) coincide cu punctul de coordonate (x, y). Eroarea admisa este de 0.001. Mai exact, max{|x-xp|, |y-yp|}<0.001
Exemple
robot2.in robot2.out robot2.in robot2.out

3
10
5
25
15 20

125.6725
0
252.5424
3
10
5
25
2 4

0

prof. Emanuela Cerchez
Liceul de Informatica "Grigore Moisil" Iasi
Contact:emanuela.cerchez@gmail.com

propunător: Prof. Emanuela Cerchez
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
De la .campion 2006: scara, programs, nr, iepuras2, numere3, fry, suma, sah, formule, perm, cifra, repeat, ture, xor, policefm, unu, criptare, ed, bilete, vector, scor, ratb, infinit, race, dragon, kreg, placi, hanoig, red, 2sec, flood, sume3, balls, festival, croco, johnie, matrice3, pavaj, sume, arthur, kimberley, kafka, vocale, pento, prop, ro, sol, bacan, erdos, poligon, reduceri, druid, novel, gramezi, nrbinar, laser, spair, caravane, cuburi, grup, invest, cd, friends2, mese, toys
De acelaşi autor: celule, scp, vedete, film, ab, supertri, inginer, camp, sl, detinut, simetric, egal, gropi, ruleta, carti, tgv, uscat, afise, dezbateri, bunici, rv, onu, nspecial, secvop, cadou, chimie, reteta, piticot, petrol, checkin, teanc, index, teren, pizza, ecran, drum, text, lbd, aven, spam, pluricex, tren2, gray, pasi, mgo, joc, anagrame, vecini, criptmat, maxim, cutie, party, friends, net, sablon, hd, pc, sir2, aztec, scara, nr, sah, formule, ed, bilete, hanoig, flood, matrice3, erdos, grup, cd, kfactor, np, cuc, radio, honest, ref, nr01, scor2, convert, auto2, compress, politics, pm, playlist, barbie, firma1, submatrix, ham, pizza1, exam, ants, teatru1, cifre1, bile1, caini, secvreg, pasune, remi, m01, sir23, tren1, joc5, pachete, aedaro, windows, renju, latime, mere1, piloti, peste, pitici, sirag1, stive, turn1, carti1, program1, spioni, kgb, lift, apel, lex, oras, homeless, subsir, dist, harta1, adevar, joc10, bare, zapezi, masina2, perechi1, raft, joc11, joc12, ferma, fni, tunel, lover, pepsi, transport, avion, monkey, premii1, garaj, carti2, tv, pact, fat, cafea, echipe1, secvente, petrom, peg, scara1, lant, ecuatii, stiva, bile4, jungla, rj, poli, text1, compus1, rez, politie, anag, codul, coment, muzeu, seti, basm, timer, secvsir, dp, placa, prod3, bursa, submdisj, sotron1, fazan, secvpar, joker, lego, medalii, cfr, antipatie, figura, links, segm, colorare, brazi, mobil, distsir, guess, greiere, pestera, conferinta, chei, ny, nx, ghinion, sumb, drenaj, telecomanda, grupuri, mahjong, rotund, viena, sport2, cos, monoton, micro, valet, nr0, maxviz, anagramabil, nrpal, lista, dame, consiliu, adprod, arme, deal, prodnr, compar, latin, interviu, vintage, prize, nrdiv, arrows, tdrept, agenda, reziston, vot2, tema, smiley, relatii, ech, scadere, nebuni, castig, expand, wb, prime2, virgule, b210
Despre geometrie: forum, supertri, ozn, detinut, atac, afise, mere, ff, teren, volei, aven, patrate, robot, pahare, pendul, dragon, poligon, druid, laser, patrate3, ploaia, donald, lot, atac1, arcas, paralel, dotnet, aedaro, vectori, spirala, distanta, triunghi, center, harta1, seceta, antena, poligon1, benzina, zoo, texan, oypara, dreptc, mosia, sea, poligon3, poligon2, snipers, basm, cetati, placa, nori, cerc, smin, cern, cuiburi, acerc, select, proiect, poligon4, terenuri, monoton, acoperire, capra, testament, jb, sdmin, ozn1, parc1, gsm, triunghi5, puncte6, romb1, dreapta, grindina, tdrept
Software recomandat
surse trimise | ajutor