Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Schimbare adresa DNS IPv4 pe rout...

Recomandare Barebone

Monede JO 2024

Suprasolicitare sistem electric
 CIV auto import

Mutare in MOZAMBIC - pareri, expe...

Scoatere antifurt airtag de pe ha...

Magnet in loc de clește pent...
 Cumparat/Locuit in apartament si ...

Pot folosi sistemul PC pe post de...

Sokol cu distorsiuni de cross-over

Filtru apa potabila cu osmoza inv...
 Kanal D va difuza serialul “...

Upgrade xiaomi mi11

securitate - acum se dau drept - ...

Farmacia Dr Max - Pareri / Sugest...
 

[TEMĂ] Afișare distanța maximă între coordonate și numărul de puncte

- - - - -
  • Please log in to reply
3 replies to this topic

#1
sftpdt

sftpdt

    Senior Member

  • Grup: Senior Members
  • Posts: 3,664
  • Înscris: 29.08.2013
Cerința

Se dau coordonatele carteziene a n puncte în plan. Să se determine distanța maximă dintre un punct dat și originea sistemului de coordonate și numărul de puncte situate la acea distanță față de origine.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi n perechi de puncte x y, reprezentând coordonatele punctelor.

Date de ieșire

Programul va afișa pe ecran două numere D C, reprezentând distanța maximă față de originea sistemului și numărul de puncte situate la acea distanță.

Restricții și precizări
  • 1 ≤ n ≤ 100
  • coordonatele punctelor sunt numere întregi din intervalul [-1000,1000]
  • distanța maximă se va afișa cu cel puțin trei zecimale exacte
Exemplu

Intrare
7
2 -1
-2 4
2 3
3 -1
-2 -4
2 -2
-4 2


Ieșire
4.472 3



Am luat aşa: distanţa între punctele A(x, y), O(0, 0) este egală cu [ http://www.sciweavers.org/upload/Tex2Img_1414821314/render.png - Pentru incarcare in pagina (embed) Click aici ]

#include <iostream>
#include <cmath>
using namespace std;
int main (void)
{
	int n, i, nr_puncte = 0, x, y;
	double distanta_maxima = 0;

	cin >> n;

	for ( i = 1 ; i <= n ; i++ )
	{
		cin >> x >> y;
		double distanta = sqrt( x*x + y*y );

		if ( distanta > distanta_maxima )
		{
			nr_puncte = 1;
			distanta_maxima = distanta;
		}

		else
		{
			if ( distanta == distanta_maxima )
				nr_puncte++;
		}
	}
	cout <<  distanta_maxima << ' ' << nr_puncte;
	return 0;
}




Iau 0p la 2 teste deoarece nu afişez corect numărul de puncte...

Edited by sftpdt, 01 November 2014 - 07:57.


#2
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
vezi despre convex qull, quickhull.

Nu e suficient sa stii convex hull, dar te ajuta. Apoi vei face ce faci tu p-acolo, doar cu punctele de pe hull.

Si atentie la compararea a doua valori cu virgula aparent egale.

#3
sftpdt

sftpdt

    Senior Member

  • Grup: Senior Members
  • Posts: 3,664
  • Înscris: 29.08.2013

 OriginalCopy, on 01 noiembrie 2014 - 08:29, said:

Si atentie la compararea a doua valori cu virgula aparent egale.

Asta era Posted Image

bool AreSame(double a, double b)
{
	return ( a == b || abs(a - b) < 1.0 / 10000000)
}


Edited by sftpdt, 01 November 2014 - 08:38.


#4
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,236
  • Înscris: 24.02.2007
Nu are rost sa calculezi sqrt pentru fiecare distanta.
Ajunge la final cand afisezi rezultatul.

Anunturi

Chirurgia endoscopică a hipofizei Chirurgia endoscopică a hipofizei

"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală.

Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate