points

Time limit: 0.2s Memory limit: 128MB Input: points.in Output: points.out

Definim mulțimea punctelor laticiale ca fiind mulțimea perechilor de puncte din plan (x,y)(x, y) cu proprietatea că xx și yy sunt numere întregi.

Fie RR un număr natural pozitiv și C(O,R)C(O, R) cercul cu centrul în originea sistemului de axe, de rază RR. Notăm cu P1P_1, P2P_2, P3P_3, \dots, PkP_k punctele laticiale care se găsesc pe cercul C(O,R)C(O, R), în ordine inversă a acelor de ceasornic, începând cu punctul de coordonate (R,0)(R, 0). Să se scrie un program care determină numărul punctelor laticiale NN cu proprietățile:

  • se găsesc în interiorul sau pe cercul C(O,R)C(O, R);
  • nu se găsesc în interiorul sau pe laturile poligonului P1P2P3PkP_1 P_2 P_3 \dots P_k.

Exemplu

Pentru R=4R = 4 există N=8N = 8 puncte cu proprietățile cerute, conform figurii alăturate.

Date de intrare

Fişierul de intrare points.in conţine pe prima linie numărul RR, cu semnificaţia de mai sus.

Date de ieșire

Fişierul de ieşire points.out va conţine pe prima linie numărul NN, cu semnificaţia de mai sus.

Restricții și precizări

  • 1R51071 \leq R \leq 5 \cdot 10^7;

Exemplul 1

points.in

4

points.out

8

Explicație

Pe cercul C(O,4)C(O, 4) se găsesc următoarele 44 puncte laticiale P1(4,0)P_1(4, 0), P2(0,4)P_2(0, 4), P3(4,0)P_3(-4, 0), P4(0,4)P_4(0, -4). Numărul punctelor laticiale situat în interiorul sau pe cercul C(O,4)C(O, 4) și în exteriorul poligonului P1P2P3P4P_1 P_2 P_3 P_4 este 88.

Exemplul 2

points.in

764123

points.out

666556106540

Explicație

Există 666 556 106 540666 \ 556 \ 106 \ 540 puncte ce verifică cerințele din enunțul problemei.

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