Soluție HackerRank pentru Find the Point, subdomeniul Fundamentals, în C++14. Include cerința formatată, exemple, explicația pașilor și cod sursă.

  • Problemă: Find the Point
  • Domeniu: Fundamentals
  • Limbaj: C++14

Challenge: Find the Point

Subdomeniu: Fundamentals (fundamentals)

Scor cont: 5.0 / 5

Submission status: Accepted

Submission score: 1.0

Submission ID: 464718610

Limbaj: cpp14

Link challenge: https://www.hackerrank.com/challenges/find-point/problem

Cerință

Consider two points, p = (p_x, p_y) and q = (q_x, q_y). We consider the inversion or [point reflection](https://en.wikipedia.org/wiki/Point_reflection), r = (r_x, r_y), of point p across point q to be a 180° rotation of point p around q.

Given n sets of points p and q, find r for each pair of points and print two space-separated integers denoting the respective values of r_x and r_y on a new line.

Function Description

Complete the *findPoint* function in the editor below.

*findPoint* has the following parameters:

- *int px, py, qx, qy:* x and y coordinates for points p and q

Returns

- *int[2]:* x and y coordinates of the reflected point r

Input Format

The first line contains an integer, n, denoting the number of sets of points.
Each of the n subsequent lines contains four space-separated integers that describe the respective values of p_x, p_y, q_x, and q_y defining points p = (p_x, p_y) and q = (q_x, q_y).

Constraints

- 1 ≤ n ≤ 15
- -100 ≤ p_x, p_y, q_x, q_y ≤ 100

Cod sursă

#include <iostream>
using namespace std;

int main() {
	
	int n, px, py, mx, my;
	cin >> n;
	
	for (int i = 1; i <= n; i++){
		
		cin >> px >> py >> mx >> my;
		
		int rx = 2 * mx - px;
		int ry = 2 * my - py;
		
		cout << rx << " " << ry << endl;
	}
	
	return 0;
}
HackerRank Fundamentals – Find the Point