Fişierul intrare/ieşire: | cursaf13.in, cursaf13.out | Sursă | Testare IQ Academy 2022 |
Autor | Cristian Francu, Mihai Tutu | Adăugată de | |
Timp execuţie pe test | 0.15 sec | Limită de memorie | 65536 kbytes |
Scorul tău | N/A | Dificultate |
Vezi solutiile trimise | Statistici
Cursa Formula 1 3 (clasa a 6-a)
Lucrezi la compania TV care va difuza anul acesta campionatul de curse de maşini, Formula 1. Contractul prevede un sistem care urmăreşte şi afişează poziţia maşinilor pe circuit, în timp ce se întrec. Acest sistem este folosit pentru a crea o experienţă îmbunătăţită telespectatorilor.
Pentru că nu sunt suficienţi bani pentru ultimele tehnologii GPS, trebuie să te bazezi pe un sistem mai vechi de urmărire, care funcţionează astfel:
- Un circuit din campionat este reprezentat pe o hartă. Harta este desenată ca un dreptunghi, împărţit în linii şi coloane. Un pătrăţel este considerat o unitate de distanţă.
- Pentru a putea modifica repede reprezentarea circuitului de la o cursă la alta, aceasta este codificată astfel:
- Se dau două numere, ls şi cs, ce reprezintă coordonatele punctului de start al circuitului.
- Apoi, se dă secvenţa de codificare a circuitului ce cuprinde mai multe direcţii, d, urmate de numărul de pătrăţele k cu care maşina se deplasează în acea direcţie.
- Direcţia d este redată prin literele A, B, C, D, E, F, G şi H, conform desenului de mai jos.
- Numărul ce urmează după direcţie reprezintă numărul de pătrăţele de pe hartă cu care maşina se deplasează în acea direcţie.
- Maşinile urmăresc acest circuit şi nu se abat de la el. Merg în aceleaşi direcţii şi se deplasează acelaşi număr de pătrăţele, conform codificării date pentru circuit.
- Din momentul startului cursei, fiecare maşină transmite prin radio distanţa, xi, pe care a parcurs-o într-o anumită perioadă de timp, i.
- Distanţa x i reprezintă numărul de pătrăţele parcurse de maşină pe hartă, în perioada i.
- Pe parcursul cursei, se verifică t perioade de timp pentru a vedea unde este fiecare maşină.
Cerinţă
Înainte de prima cursă, te apuci să faci câteva teste asupra sistemului. Aşa că ai convins un singur pilot să facă ture cu maşina pe circuit şi încerci să determini poziţia acestuia, la sfârşitul fiecărei perioade de timp i.
Date de intrare
Fişierul de intrare cursaf13.in conţine:
- pe prima linie coordonatele punctului de start ale circuitului, ls şi cs.
- pe a doua linie secvenţa de codificare a circuitului, alcătuită din litere şi numere. Secvenţa este împărţită în grupuri ce conţin o literă, reprezentând direcţia d şi un număr k reprezentând numărul de pătrăţele cu care avansează maşina.
- pe a treia linie un singur număr t, reprezentând numărul de perioade de timp pentru care verificăm maşina de test.
- pe a patra linie t numere, despărţite printr-un spaţiu, reprezentând distanţele xi parcurse de maşină în fiecare din cele t perioade de timp.
Date de ieşire
În fişierul de ieşire cursaf13.out veţi afişa t perechi de două numere, despărţite printr-un spaţiu, câte o pereche pe linie. în total t linii. Perechea de pe linia i reprezintă coordonatele maşinii (linie şi coloană) la finalul perioadei de timp i.
Restricţii
- d este o literă mare între A şi H
- 1 ≤ k ≤ 200
- 1 ≤ t ≤ 20 000
- 1 ≤ xi ≤ 1 000 000
- Circuitul are cel puţin 3 schimbări de direcţie, dar nu poate avea mai mult de 20 000 de schimbări de direcţie.
- Se garantează că circuitul se închide. Maşina care parcurge circuitul conform codificării lui se va afla, după ce parcurge o tură întreagă de circuit, în punctul de start, la coordonatele, ls şi cs.
- Circuitul se poate autointersecta. Codificarea lui este o reprezentare cu vedere de sus. În realitate există tuneluri sau poduri.
- Se garantează că circuitul nu are schimbări de direcţie la 180 de grade (în direcţia opusă). Nu vor exista două direcţii alăturate A-E, B-F, C-G, D-H sau viceversa.
- Se garantează că toate punctele circuitului au coordonate numere naturale mai mici decât 4 milioane
Exemplu
cursaf13.in | cursaf13.out | Explicaţii |
---|---|---|
0 0 C7D3E5G10A8 5 13 7 28 11 16 | 6 10 8 5 8 10 7 0 2 9 | Circuitul începe la coordonatele (0,0). Apoi, conform codificării, urmează: C7 - 7 pătrăţele spre dreapta; D3 - 3 pătrăţele în diagonală jos-dreapta E5 - 5 pătrăţele în jos; G10 - 10 pătrăţele în stânga; A8 - 8 pătrăţele în sus. După reprezentarea circuitului ca în figura alăturată, vom deplasa maşina şi vom vedea un se află fiecare la fiecare perioadă i: * pentru i = 1, va parcurge 13 pătrăţele şi va ajunge la coordonatele l = 6, c = 10. * pentru i = 2, va parcurge 7 pătrăţele şi va ajunge la coordonatele l = 8, c = 5. * pentru i = 3, va parcurge 28 pătrăţele şi va face termina prima tură şi va continua traseul. Va ajunge la coordonatele l = 8, c = 10, în cea de-a doua tură. * pentru i = 4, va parcurge 11 pătrăţele şi va ajunge la coordonatele l = 7, c = 0. * pentru i = 5, va parcurge 16 pătrăţele şi va ajunge la coordonatele l = 2, c = 9 |
Explicaţie grafică pentru exemplu
Reprezentarea circuitului
Reprezentarea poziţiei maşinii la fiecare perioadă de timp i