Diferențe pentru problema/geometrie între reviziile #6 si #1

Nu există diferențe între titluri.

Diferențe între conținut:

== include(page="template/taskheader" task_id="geometrie") ==
Dorel a chiulit la ultima oră de matematică. Fiind conștient de consecințe (profesorul se va înfuria, îi va verifica tema și îl va scoate la tablă), acesta a început să își rezolve tema la geometrie, pregătindu-se totodată pentru atunci când va fi scos la tablă la următoarea oră de matematică. Deoarece Dorel nu a apucat să ceară lecția predată de la colegii săi, dar și pentru că are o temă foarte lungă (probabil va avea nevoie de cel putin jumatate de caiet pentru a scrie toată tema), acesta vă cere să îl ajutați prin a scrie un program care poate rezolva următorul tip de problemă:
 
Se consideră **n** puncte distincte în plan (sistem de coordonate carteziene), astfel încât oricum am alege 3 puncte, acestea să nu fie coliniare. Dintre acestea, găsiți punctul este cel mai apropiat de un alt punct dat (se consideră distanța euclidiană). De asemenea, determinați care este numărul de paralelograme care se pot forma cu aceste puncte (cele 4 colțuri ale paralelogramului să se regăsească printre punctele date inițial). Paralelogramul este figura geometrică care are laturile opuse egale și paralele.
 
h2. Cerință
 
Scrieți un program care să citească numărul natural nenul **n**, coordonatele **x**, **y** ale unui punct, precum și coordonatele **x[~i~]**, **y[~i~]** ale celor **n** puncte, și determină:
 
# Coordonatele celui mai apropiat punct de (**x**, **y**) – în caz de egalitate, se va alege punctul cu coordonata **x** maximă, iar in cazul în care există în continuare mai multe soluții, punctul cu coordonata **y** maximă
# Numărul de paralelograme care se pot forma folosind câte 4 dintre cele **n** puncte date
Poveste și cerință...
h2. Date de intrare
Fișierul de intrare $geometrie.in$ conține:
 
# Pe prima linie numărul **c**, care poate avea doar valorile 1 sau 2 și reprezintă numărul cerinței care trebuie rezolvată
# Pe a doua linie numărul de puncte **n**
# Pe următoarele **n** linii, câte 2 numere întregi care reprezintă coordonatele fiecărui punct **x[~i~]**, **y[~i~]**
# Pe ultima linie, coordonatele **x**, **y** ale unui punct
Fișierul de intrare $geometrie.in$ ...
h2. Date de ieșire
Fișierul de ieșire $geometrie.out$ va avea conținut diferit în funcție de cerință:
# În cazul cerinței 1, se vor afișa coordonatele celui mai apropiat punct de cel dat.
# În cazul cerinței 2, se va afișa un singur număr reprezentând numărul de paralelograme care pot fi formate.
 
În fișierul de ieșire $geometrie.out$ ...
h2. Restricții
* $1 ≤ n ≤ 2500$
* Coordonatele tuturor puntelor sunt numere întregi în intervalul [-1000, 1000]
* Se acordă 40% din punctaj pentru rezolvarea corectă a cerinței 1 și 60% din punctaj pentru rezolvarea corectă a cerinței 2
 
* $... ≤ ... ≤ ...$
h2. Exemplu
table(example).
|_. geometrie.in |_. geometrie.out |_. Explicații |
| 1
10
0 -1
1 3
-1 4
-3 1
-3 2
-1 -2
2 -2
4 1
4 -1
5 3
2 4
| 1 3
| Cel mai apropiat punct de (2, 4) este (1, 3)
|
| 2
10
0 -1
1 3
-1 4
-3 1
-3 2
-1 -2
2 -2
4 1
4 -1
5 3
2 4
| 4
| Cu cele 10 puncte date, se pot forma 4 paralelograme:
1 (verde): (-1, 4), (-3, 1), (2, -2), (4, 1)
2 (galben): (1, 3), (-1, 4), (0, -1), (2, -2)
3 (roșu): (1, 3), (-3, 1), (0, -1), (4, 1)
4 (mov): (5, 3), (1, 3), (0, -1), (4, -1)
!problema/geometrie?geometrie.png!
|
table(example).
|_. geometrie.in |_. geometrie.out |
| This is some
text written on
multiple lines.
| This is another
text written on
multiple lines.
|
 
h3. Explicație
 
...
== include(page="template/taskfooter" task_id="geometrie") ==

Nu există diferențe între securitate.