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

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


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

Se dau N puncte in planul euclidian prin coordonatele lor, numere intregi. Apoi se efectueaza M operatii asupra tuturor punctelor, intr-o ordine data. O operatie poate fi de doua tipuri: de translatie sau de rotatie. Intr-o operatie de rotatie, punctele sunt rotite in jurul originii cu un anumit numar de grade in sens trigonometric. Intr-o operatie de translatie, originea este mutata in alt punct relativ la originea curenta si coordonatele celorlalte puncte sunt modificate astfel incat sa reprezinte aceleasi puncte relativ la noua origine.

Cerinta

Scrieti un program care calculeaza coordonatele tutoror punctelor dupa cele M operatii.

Date de intrare

Datele de intrare se gasesc in fisierul dotnet.in. Pe prima linie a fisierului de intrare se gasesc numerele naturale N si M separate printr-un spatiu. Pe urmatoarele N linii se gasesc cate doua numere intregi pe linie, reprezentand coordonatele punctelor (x si y in aceasta ordine). Pe urmatoarele M linii se gaseste descrierea operatiilor de efectuat, in ordinea in care trebuie efectuate (cate o operatie pe linie). Descrierea unei operatii consta dintr-o secventa de numere intregi separate prin spatii. Primul numar reprezinta tipul operatiei: 0 pentru rotatie si 1 pentru translatie. In cazul rotatiei urmeaza un singur numar intreg cu valori din [0, 359] reprezentand cu cate grade se rotesc punctele in sens trigonometric. In cazul translatiei urmeaza doua numere intregi separate printr-un spatiu reprezentand coordonatele noii origini.

Date de iesire

In fisierul de iesire dotnet.out se gasesc N linii, fiecare linie continand cate doua numere reale separate prin exact un spatiu, numere reale afisate in format zecimal cu 2 zecimale exacte, reprezentand coordonatele unui punct dupa efectuarea celor M operatii (x si y in aceasta ordine). Punctul de pe linia i din fisierul de iesire trebuie sa corespunda punctului de pe linia i + 1 din fisierul de intrare.

Restrictii

  • 1 <= N <= 100 000
  • 0 <= M <= 10 000
  • coordonatele intiale ale punctelor vor fi din intervalul [-10000,10000]
  • coordonatele originii la operatia de translatie vor fi din intervalul [-10,10]

Exemplu

dotnet.in

dotnet.out

1 2
2 1
0 30
1 -3 -2

4.23 3.87

student Ciobaca Stefan
Facultatea de Informatica Iasi
addictedtoprogramming at yahoo dot com

propunător: Prof. Emanuela Cerchez
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
De la .campion 2004: cifre1, super, apm, bile1, factk, schimb, caini, secvreg, descfib, maraton, masina1, otilia, multiplu, tub, pasune, remi, m01, robot1, na, sir23, paralel, zaruri, bomboane, divizor, tren1, joc5, tvshow, pachete, soldati1, echipe, omizi, suma1, aedaro, concurs1, windows, comb, renju, latime, vectori, ghici, subperm, puncte, mere1, spirala, distanta, piloti
De acelaşi autor: parent, program, comb, subperm, newcomp, tric, cladiri, bsir, logic
Despre geometrie: forum, supertri, ozn, detinut, atac, afise, mere, ff, teren, volei, aven, patrate, robot, pahare, pendul, robot2, dragon, poligon, druid, laser, patrate3, ploaia, donald, lot, atac1, arcas, paralel, 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
Despre matrice: vopsea, harta, opmat, sarpe, light, magic2, tetris, origami, concurs, iepuras, tribile, criptmat, cutie, patrate, 3d, pajura, perspic, vecini2, livada, matrice3, kafka, erdos, grup, scor2, reteta2, rezervatie, scoici, tablou, game, stea, submatrix, cifru, jokes, oua, trecere, na, renju, ghici, mere1, agitatie, lacuri, sotron, desen1, camion, ceas1, fibo, parc, excursia, matricea, zidar, joc6, log, concurs2, cladiri, dist, centru, robinson, cuburi2, joc8, joc9, romeo, adevar, soricel2, avere, joc11, vizibil, sah1, blockout, masina3, lsort, anticip, matrice1, evantai, spion, pereti, zumzi, roboti, placare, tabel, ocr, numere7, lacusta, becuri, sir5, flori, cartele, furnica, pavare, poarta, rj, peri, poligon2, sablon1, gradina, matrice4, poartas, balcon, submdisj, v, matrx, figura, neuroni, raze, roboti1, bila, iepurasi, colorare, mat, submatrix1, simetric1, plaja, xor2, guess, albine1, joct, alfabetar, stele, tablou1, alpinist, cladire, cri, grupe2, el, mahjong, sir9, acces, tort1, joc17, mesaj3, zar1, xy, poteci, avioane, broscute, safeu, acoperire1, radioactiv, robot4, lcdr, jb, slide, maxtri, dame, triunghi4, elicop, compresie, mijloc, cubulete, romb, medalion, bile6, zigzag, puncte5, intersectii, matd3, matrixdel, speed, seif1, traseu2, incadrare, betasah, zona, latin, zmax, amestec, sudoku1, gradina1, spider, zone, bemo, rombul, interclasare, rebus1, tabla, arrows, pseudobil, patrat1, rascoala, harta2, relatii, lasere, defrag, matcnt, ssdj, cript, ssk, teren1, fence, cifre6
surse trimise | ajutor