Pe planeta Quadratia, locuitorii folosesc forme pătrate în tot ceea ce construiesc. Ei au trimis pe solul planetei N
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 1
. 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 3
numere naturale nenule L
, C
și R
, reprezentând poziția (linia L
și coloana C
) 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)
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 S
secunde. Traiectoria roverelor poate trece prin poziția în care a fost amplasată arma, fără a o putea detecta în primele S
secunde.
În imagine avem două rovere, acestea fiind identificate prin tripletele de numere 4, 2, 6
, respectiv 6, 9, 4
. Traiectoria primului rover începe din poziția (4, 2)
și are latura 6
. 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, ...
Primul rover intersectează, la prima sa trecere, diagonala principală în două puncte: (4, 4)
la secunda 3
și (7, 7)
la secunda 9
. Al doilea rover intersectează diagonala principală într-un singur punct, (9, 9)
la secundele 10, 22, 34, ...
Cerința
Scrieţi un program care să rezolve următoarele cerințe:
- Determină numărul roverelor a căror traiectorie se intersectează cu diagonala principală a tabloului ce descrie harta.
- Determină numărul maxim de rovere, care pot fi distruse simultan, într-o singură secundă, înainte de trecerea celor
S
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}
, semnificând numărul cerinței de rezolvat. - pe a doua linie se află numerele naturale nenule
N
șiS
, separate printr-un spațiu, reprezentând numărul roverelor, respectiv numărul de secunde în care arma nu este detectată. - pe următoarele
N
linii se află câte 3 numere naturale nenule,L
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 = 1
, pe prima linie se va afișa numărul roverelor a căror traiectorie se intersectează cu diagonala principală; - dacă
T = 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
1 ≤ N ≤ 10.000
1 ≤ S ≤ 100.000
1 ≤ L, C ≤ 50.000
3 ≤ R ≤ 1000
1 ≤ Numărul maxim de rovere care se intersectează cu raza armei ≤ 1000
.- Pentru 28 de puncte,
T = 1
- Pentru 72 de puncte,
T = 2
Exemplul 1:
raza.in
1 2 100 4 2 6 6 9 4
raza.out
2
Explicație
Cerința este 1. 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 2. Este distrus doar primul rover, momentul în care se distruge acest rover este 3
.
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 1. 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 2. Numărul maxim de rovere, care pot fi distruse este 2
. Acest lucru se poate realiza cel mai devreme la secunda 3
.