raza

Time limit: 0.1s Memory limit: 64MB Input: raza.in Output: raza.out

Pe planeta Quadratia, locuitorii folosesc forme pătrate în tot ceea ce construiesc. Ei au trimis pe solul planetei NN mașini speciale de apărare, numite rovere, care se deplasează pe traiectorii ce descriu pătrate. Harta planetei poate fi privită ca un tablou bidimensional cu număr infinit de linii și coloane, numerotarea acestora începând cu 11. Fiecare element al acestui tablou se identifică prin numărul liniei, respectiv numărul coloanei pe care se găsește.

Fiecare rover este descris prin 33 numere naturale nenule L,CL, C și RR, reprezentând poziția (linia LL și coloana CC) elementului din colțul din stânga-sus al pătratului ce descrie traiectoria, respectiv lungimea R a laturii acestuia. Toate roverele pornesc inițial din elementul din colțul stânga-sus al pătratului ce descrie traiectoria, pe care o parcurg în sensul acelor de ceasornic, traversând câte un element pe secundă. Ele sunt programate să parcurgă această traiectorie fără a se opri. Este posibil ca mai multe rovere să se afle, la un moment dat, la aceeași poziție de pe hartă.

Rectilinienii sunt singurii dușmani ai quadratienilor, ei deosebindu-se de aceștia prin folosirea consecventă a liniilor drepte în tot ceea ce construiesc. Rectilinienii au construit o armă laser de mare putere, pe care vor să o folosească la distrugerea roverelor quadratiene. Arma a fost adusă în poziția (1,1)(1,1) de pe harta planetei, adică elementul de pe prima linie și prima coloană.

Arma poate emite o singură rază distructivă, timp de o secundă, dezafectând în acest timp toate roverele aflate în secunda respectivă pe diagonala principală a tabloului care descrie harta planetei. Arma nu poate fi detectată în primele SS secunde. Traiectoria roverelor poate trece prin poziția în care a fost amplasată arma, fără a o putea detecta în primele SS secunde.

În imagine avem două rovere, acestea fiind identificate prin tripletele de numere 4,2,64, 2, 6, respectiv 6,9,46, 9, 4. Traiectoria primului rover începe din poziția (4,2)(4, 2) și are latura 66. Numerele de pe traiectorie reprezintă secunda la care se parcurge respectivul element al tabloului. Roverul va ajunge din nou în poziția inițială la secundele 21,41,61,21, 41, 61, \dots Primul rover intersectează, la prima sa trecere, diagonala principală în două puncte: (4,4)(4, 4) la secunda 33 și (7,7)(7, 7) la secunda 99. Al doilea rover intersectează diagonala principală într-un singur punct, (9,9)(9, 9) la secundele 10,22,34,10, 22, 34, \dots.

Cerință

Scrieţi un program care să rezolve următoarele cerințe:

  1. Determină numărul roverelor a căror traiectorie se intersectează cu diagonala principală a tabloului ce descrie harta.
  2. Determină numărul maxim de rovere, care pot fi distruse simultan, într-o singură secundă, înainte de trecerea celor SS secunde, precum și secunda minimă în care se poate realiza acest lucru.

Date de intrare

Datele de intrare se citesc din fișierul raza.in, care are următoarea structură:

  • pe prima linie se află numărul natural T{1,2}T \in \{1, 2\}, semnificând numărul cerinței de rezolvat.
  • pe a doua linie se află numerele naturale nenule NN și SS, separate printr-un spațiu, reprezentând numărul roverelor, respectiv numărul de secunde în care arma nu este detectată.
  • pe următoarele NN linii se află câte 33 numere naturale nenule, L C RL \ C \ R, separate prin câte un spațiu, reprezentând coordonatele poziției inițiale, respectiv lungimea laturii traiectoriei fiecărui rover.

Date de ieșire

Datele de ieșire se vor afișa în fișierul raza.out, care are următoarea structură în funcție de cerință:

  • dacă T=1T = 1, pe prima linie se va afișa numărul roverelor a căror traiectorie se intersectează cu diagonala principală;
  • dacă T=2T = 2, pe prima linie se vor afișa două numere naturale, separate printr-un spațiu, reprezentând numărul maxim de rovere dezactivate și secunda minimă în care se poate realiza acest lucru.

Restricții și precizări

  • 1N10 0001 \leq N \leq 10 \ 000
  • 1S100 0001 \leq S \leq 100 \ 000
  • 1L,C50 0001 \leq L, C \leq 50 \ 000
  • 3R1 0003 \leq R \leq 1 \ 000
  • 11 \leq Numărul maxim de rovere care se intersectează cu raza armei 1 000\leq 1 \ 000.
  • Pentru 2828 de puncte, T=1T = 1
  • Pentru 7272 de puncte, T=2T = 2

Exemplul 1

raza.in

1
2 100
4 2 6
6 9 4

raza.out

2

Explicație

Cerința este 11. Exemplul reprezintă desenul din enunț.

Exemplul 2

raza.in

2
2 5
4 2 6
6 9 4

raza.out

1 3

Explicație

Cerința este 22. Este distrus doar primul rover, momentul în care se distruge acest rover este 33.

Exemplul 3

raza.in

1
5 10000
3 3 3
4 7 4
6 4 3
9 2 3
9 7 5

raza.out

4

Explicație

Cerința este 11. Sunt patru rovere care intersectează diagonala.

Exemplul 4

raza.in

2
5 10000
3 3 3
4 7 4
6 4 3
9 2 3
9 7 5

raza.out

2 3

Explicație

Cerința este 22. Numărul maxim de rovere, care pot fi distruse este 22. Acest lucru se poate realiza cel mai devreme la secunda 33.

Log in or sign up to be able to send submissions!