drept

Time limit: 0.2s Memory limit: 20MB Input: drept.in Output: drept.out

Numim poligon drept un poligon cu laturile consecutive perpendiculare şi lungimile laturilor numere naturale nenule. Un poligon drept cu nn laturi este descris de un şir de nn numere întregi nenule în care lungimile laturilor sunt date de valoarea absolută a numerelor din şir, iar semnul precizează poziţia laturilor, un număr pozitiv însemnând latură spre dreapta sau în sus faţă de extremitatea laturii precedente, iar un număr negativ însemnând latură în jos sau spre stânga față de extremitatea laturii precedente; de exemplu şirul 1,1,1,11,1,-1,-1 reprezintă un pătrat de latură 11 (prima latură spre dreapta, a doua în sus, a treia spre stânga, a patra în jos). Vom considera laturile ca fiind orizontale sau verticale, prima latură enumerată fiind orizontală spre dreapta, dacă numărul este pozitiv, sau spre stânga, dacă numărul este negativ.

Cerință

Se dau unul sau mai multe șiruri de numere întregi nenule.

  1. Să se stabilească, pentru fiecare dintre ele, dacă reprezintă un poligon drept.
  2. Știind că șirurile date reprezintă poligoane drepte, să se determine aria fiecăruia.

Date de intrare

Fişierul drept.in conţine pe prima linie, separate prin spațiu, un număr natural CC și un număr natural TT. Următoarele 2T2 \cdot T linii vor descrie testele, câte două linii pentru fiecare test. Pe prima linie corespunzătoare unui test se află un număr natural nn, iar pe a doua linie un şir de nn numere întregi, separate prin câte un spațiu.

Date de ieșire

Fişierul drept.out va conţine pe o singură linie rezultatele corespunzatoare celor TT teste, separate prin câte un spaţiu. Dacă C=1C=1, pentru fiecare șir rezultatul este 11, dacă acesta reprezintă un poligon drept, sau 00 altfel. Dacă C=2C=2, pentru fiecare șir rezultatul este aria poligonului drept corespunzător.

Restricții și precizări

  • 1T101 \leq T \leq 10;
  • 4n1004 \leq n \leq 100;
  • Pentru teste în valoare de 4545 de puncte C=1C=1, pentru restul de 55 de puncte C=2C=2;
  • Pentru teste în valoare de 3030 de puncte C=1C=1 și numerele ce descriu figura sunt întregi nenule aparținând intervalului [100,100][-100,100];
  • Pentru celelalte 1515 puncte și C=1C=1 numerele ce descriu figura sunt întregi nenule aparținând intervalului [109,109][-10^9,10^9];
  • Pentru teste în valoare de 3333 de puncte se garantează că avem C=2C=2 și intersecția dintre orice orizontală cu poligonul este fie vidă, fie formată dintr-un singur segment.
  • Pentu testele în care valoarea lui CC este 22, numerele din șirul ce descrie poligonul sunt întregi nenule din intervalul [100,100][-100, 100] și se garantează că aceste șiruri reprezintă poligoane drepte.
  • Într-un poligon drept laturile nu au puncte comune, exceptând capetele laturilor adiacente.
  • Prima și ultima latură ale unui poligon drept sunt perpendiculare.

Exemplul 1

drept.in

1 2
8
5 3 -3 -1 2 -1 -4 -1
8
-2 1 3 1 -4 -3 2 1

drept.out

1 0

Explicație

Șirurile descriu următoarele figuri:

Exemplul 2

drept.in

2 2
8
5 3 -3 -1 2 -1 -4 -1
4
1 1 -1 -1

drept.out

9 1

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