Atenție! Aceasta este o versiune veche a paginii., scrisă la 2022-01-12 16:13:50.000.
Revizia anterioară   Revizia următoare  

Fișierul intrare/ieșire cursaf13.in, cursaf13.out Sursă Testare IQ Academy 2022
Autor Cristian Frâncu | Mihai Tuțu Adăugată de avatar mihai.tutu Mihai Tutu mihai.tutu
Timp de execuție pe test 0.05 sec Limită de memorie 65536 KB
Scorul tău N/A Dificultate stea de rating de tip fullstea de rating de tip fullstea de rating de tip fullstea de rating de tip emptystea de rating de tip empty
open book Poți vedea testele pentru această problemă accesând atașamentele .

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 patrulater, î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 ale circuitului.
    • Apoi, se dă secvența de codificare a circuitului ce cuprinde mai multe direcții, d, urmate de lungimea segmentului parcurs, k, în acea direcție.
    • Poziția de start nu este parte componentă a primului segment din circuit. Doar ne spune de unde plecăm în direcția d cu segmentul. Primul pătrățel al primului segment va fi vecin cu poziția de start.
    • Direcția d este redată prin literele A, B, C, D, E, F, G și H, conform desenului alăturat.
    • Lungimea segmentului reprezintă numărul de pătrățele de pe hartă parcursă de acea direcție.
    • Direcția se schimbă când se întâlnește o altă direcție.
  • Mașinile urmăresc acest circuit și nu se abat de la el. Merg în aceleași direcții și pe aceleași lungimi, ca și codificarea dată anterior pentru circuit.
  • Din momentul startului cursei, fiecare mașină n transmite prin radio distanța, x t, pe care a parcurs-o într-o anumită perioadă de timp, t.
    • Distanța x t reprezintă numărul de pătrățele parcurse de mașină pe hartă, în perioada t.
    • Pe parcursul cursei, se verifică mai multe momente t pentru a vedea unde sunt mașinile.
    • Pentru a nu îngreuna sistemul, perioada de timp t este constantă pe tot parcursul cursei.
    • Toate mașinile se raportează la această perioadă t.

Cerința

Înainte de prima cursă, te apuci să faci câteva teste asupra sistemului și încerci să afli unde se află fiecare mașină pe circuit, la sfârșitul ultimei perioade de timp t.

Date de intrare

Fișierul de intrare cursaf13.in conține pe prima linie coordonatele punctului de start ale circuitului, ls și cs.

Pe următoarea linie se găsește secvența codificată 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 reprezentând lungimea segmentului, k.

Pe următoarea linie dau două numere despărțite printr-un spațiu, t și n, cu semnificația de mai sus.

Pe următoarele n linii se regăsesc distanțele x t despărțite printr-un spațiu, cu semnificația de mai sus.

Date de ieșire

În fișierul de ieșire cursaf13.out se vor afișa informațiile astfel:

  • Fiecare rând reprezintă răspunsul pentru o mașină. Ordinea mașinilor este cea din fișierul de intrare.
  • Pe fiecare rând se afișează două numere, ce reprezintă coordonatele (linie și coloană) mașinii la sfârșitul ultimei perioade de timp t.

Restricții

  • 0 ≤ ls, cs
  • d poate fi oricare dintre majusculele cuprinse între A – H
  • 1 ≤ k ≤ 10 000
  • 1 ≤ n, t ≤ 10 000
  • 1 ≤ x t ≤ 10 000
  • Circuitul nu poate avea mai mult de 10 000 de segmente.
  • Se garantează că circuitul se închide. Ultimul pătrățel din ultimul segment al circuitului se suprapune cu poziția de start, la coordonatele, ls și cs.
  • Segmentele circuitului se pot intersecta. Este o reprezentare cu vedere de sus, iar în realitate sunt tuneluri sau pasarele.
  • Se garantează că nu sunt schimbări bruște, în direcția opusă, în reprezentarea circuitului. Nu vor exista două segmente alăturate cu direcții A-E, B-F, C-G, D-H sau viceversa.
  • Fiecare mașină pornește de pe primul pătrățel al primului segment pentru măsurarea distanței parcurse.
  • Coordonatele finale ale mașinii se raportează la coordonatele ls și cs.

Exemplu

cursaf13.in cursaf13.out Explicații
0 0
C10E10G10A10
4 2
16 12 20 11
12 24 15 21
10 9
0 9
Circuitul începe reprezentarea din coordonatele (1,1). Apoi se reprezintă circuitul conform codificării:
C10 – 10 pătrățele spre dreapta;
E10 – 10 pătrățele în jos;
G10 – 10 pătrățele în stânga;
A10 – 10 pătrățele în sus.
După reprezentarea traseului ca în figura alăturată, putem vedea ce traseu a parcurs fiecare mașină.
Pentru mașina 1, vom parcurge 16 pătrățele pentru prima perioadă, apoi 12 pătrățele pentru a doua perioadă,
20 pătrățele pentru a treia perioadă și 11 pătrățele pentru ultima perioadă.
Astfel, mașina 1 se oprește pe segmentul B, la coordonatele (10, 9).
Pentru mașina 2, vom parcurge 12 pătrățele pentru prima perioadă, apoi 24 pătrățele pentru a doua perioadă,
15 pătrățele pentru a treia perioadă și 21 pătrățele pentru ultima perioadă.
Astfel, mașina 2 se oprește pe segmentul B, la coordonatele (0, 9).

Trebuie să te autentifici pentru a trimite soluții. Click aici

Indicii de rezolvare

Arată 4 categorii