ConcursC++17

Z

Magazinul de jocuri a lansat cea mai recentă versiune a jocului Z, pentru a-i ajuta pe elevii din clasa a VIIIVIII-a să înțeleagă mai bine modul de identificare a coordonatelor unui punct din plan, într-un sistem de axe ortogonale.

Numim semn Z în planul xOy figura obținută cu ajutorul a 44 puncte distincte A(xA,yA),B(xB,yB),C(xC,yC),D(xD,yD),A(x_A, y_A), B(x_B, y_B), C(x_C, y_C), D(x_D, y_D), unite ca în fig.1, în care xA=xC,xB=xD,yA=yB,yC=yDx_A = x_C , x_B = x_D , y_A = y_B , y_C = y_D.

Figura 1 din enunțul original al problemei Z.Figura 1 din enunțul original al problemei Z.Mărește schema ↗

Pe ecran este afișată o foaie de matematică și sistemul de axe ortogonale xOyxOy. Succesiv, apar coordonatele întregi ale unor puncte din plan. Jucătorul trebuie să marcheze pe foaie fiecare punct și să traseze un segment care să unească punctul (cu excepția primului punct marcat) cu cel marcat anterior.

În exemplul din fig.2 au fost marcate succesiv punctele: (−8,4)(-8,4), (−5,6)(-5,6), (−2,6)(-2,6), (1,6)(1,6), (−2,2)(-2,2), (−5,−2)(-5,-2), (−5,2)(-5,2), (1,2)(1,2), (−5,−2)(-5,-2), (1,−2)(1,-2), (−1,2)(-1,2), (2,6)(2,6), (−1,2)(-1,2), (1,−2)(1,-2). Se observă că punctele se pot repeta.

Figura 2 din enunțul original al problemei Z.Figura 2 din enunțul original al problemei Z.Mărește schema ↗

La sfârșitul jocului, jucătorul trebuie să numere de câte ori a trecut prin originea sistemului de coordonate O(0,0)O(0,0) și care este numărul maxim al semnelor ZZ distincte, formate cu puncte marcate.

Cerință

Cunoscându-se NN (numărul de puncte afișate succesiv pe ecran) și coordonatele celor NN puncte din plan, să se scrie un program care determină:

  1. Numărul de treceri prin originea sistemului de coordonate.
  2. Numărul maxim al semnelor ZZ distincte, formate cu puncte marcate.

Date de intrare

Fișierul de intrare z.in conține pe prima linie un număr natural PP reprezentând cerinţa care trebuie să fie rezolvată (11 sau 22). Pe cea de a doua linie se află numărul natural NN, reprezentând numărul punctelor afișate succesiv pe ecran. Pe următoarele NN linii se află câte două numere întregi, xx și yy, separate printr-un spațiu, reprezentând coordonatele unui punct (x,y) din plan, în ordinea apariției pe ecran.

Date de ieșire

Dacă cerinţa este P=1P=1, atunci pe prima linie a fişierului z.out va fi scris un număr natural reprezentând numărul de treceri prin originea sistemului de coordonate.

Dacă cerinţa este P=2P=2, atunci fişierul de ieşire z.out va conţine numărul maxim al semnelor ZZ distincte, formate cu puncte marcate.

Restricții și precizări

  • 4≤N≤1 0004 \leq N \leq 1 \ 000
  • −1 000≤x,y≤1 000-1 \ 000 \leq x, y \leq 1 \ 000
  • 00 trecere prin originea sistemului de coordonate este determinată de trasarea unui segment care conține originea sistemului și are capetele diferite de origine.
  • Pentru rezolvarea corectă a primei cerinţe se va acorda 20%20\% din punctaj, iar pentru rezolvarea corectă a celei de a doua cerințe se va acorda 80%80\% din punctaj.

Exemplul 1

z.in

1
14
-8 4
-5 6
-2 6
1 6
-2 2
-5 -2
-5 2
1 2
-5 -2
1 -2
-1 2
2 6
-1 2
1 -2

z.out

2

Explicație

A trecut de două ori prin originea sistemului de coordonate.

Exemplul 2

z.in

2
14
-8 4
-5 6
-2 6
1 6
-2 2
-5 -2
-5 2
1 2
-5 -2
1 -2
-1 2
2 6
-1 2
1 -2

z.out

3

Explicație

S-au format 33 semne ZZ, reprezentate în figurile 33, 44 și 55.
Figura 3 din enunțul original al problemei Z.Figura 3 din enunțul original al problemei Z.Mărește schema ↗

Sursă și autori

ONI 2017, clasele 8. Cristina Sichim.

Enunț din Kilonova, sub licența CC-BY-NC-SA-4.0, conform politicii sursei. Adaptări de prezentare și tipografie. Exemplele, formulele și figurile originale sunt păstrate.

RÂNDUL TĂU

Trimite o soluție

Editor de cod

Setul original de teste și regulile de punctare sunt în curs de verificare. Trimiterea pentru evaluare va fi disponibilă după această verificare.

Se verifică autentificarea…

Un pas, apoi următorul.Înapoi sus ↑