# Find the coordinates of a triangle whose Area = (S / 2)

• Last Updated : 01 Mar, 2022

Given an integer S, the task is to find the coordinates of a triangle whose area is (S / 2).

Examples:

Input: S = 4
Output:
(0, 0)
(1000000000, 1)
(999999996, 1)

Input: S = 15
Output:
(0, 0)
(1000000000, 1)
(999999985, 1)

Approach:

• It is know than the area of the triangle whose coordinates are (X1, Y1), (X2, Y2) and (X3, Y3) is given by A = ((X1 * Y2) + (X2 * Y3) + (X3 * Y1) – (X1 * Y3) – (X2 * Y1) – (X3 * Y2)) / 2.
• Now fixing (X1, Y1) to (0, 0) gives A = ((X2 * Y3) – (X3 * Y2)) / 2.
• It is given that A = S / 2 which implies S = (X2 * Y3) – (X3 * Y2).
• Now fix (X2, Y2) to (109, 1) and the equation becomes S = 109 * Y3 – X3 which can be solved by taking an integer value of a variable that given the integer value for the other variable.

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach``#include ``using` `namespace` `std;` `const` `long` `MAX = 1000000000;` `// Function to find the triangle``// with area = (S / 2)``void` `findTriangle(``long` `S)``{` `    ``// Fix the two pairs of coordinates``    ``long` `X1 = 0, Y1 = 0;``    ``long` `X2 = MAX, Y2 = 1;` `    ``// Find (X3, Y3) with integer coordinates``    ``long` `X3 = (MAX - S % MAX) % MAX;``    ``long` `Y3 = (S + X3) / MAX;` `    ``cout << ``"("` `<< X1 << ``", "` `<< Y1 << ``")\n"``;``    ``cout << ``"("` `<< X2 << ``", "` `<< Y2 << ``")\n"``;``    ``cout << ``"("` `<< X3 << ``", "` `<< Y3 << ``")"``;``}` `// Driver code``int` `main()``{` `    ``long` `S = 4;` `    ``findTriangle(S);` `    ``return` `0;``}`

## Java

 `// Java implementation of the approach``class` `GFG``{``    ``static` `final` `long` `MAX = ``1000000000``;``    ` `    ``// Function to find the triangle``    ``// with area = (S / 2)``    ``static` `void` `findTriangle(``long` `S)``    ``{``    ` `        ``// Fix the two pairs of coordinates``        ``long` `X1 = ``0``, Y1 = ``0``;``        ``long` `X2 = MAX, Y2 = ``1``;``    ` `        ``// Find (X3, Y3) with integer coordinates``        ``long` `X3 = (MAX - S % MAX) % MAX;``        ``long` `Y3 = (S + X3) / MAX;``    ` `        ``System.out.println(``"("` `+ X1 +``                           ``", "` `+ Y1 + ``")"``);``        ``System.out.println(``"("` `+ X2 +``                           ``", "` `+ Y2 + ``")"``);``        ``System.out.println(``"("` `+ X3 +``                           ``", "` `+ Y3 + ``")"``);``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `main (String[] args)``    ``{``        ``long` `S = ``4``;``    ` `        ``findTriangle(S);``    ``}``}` `// This code is contributed by AnkitRai01`

## Python3

 `# Python3 implementation of the approach``MAX` `=` `1000000000``;` `# Function to find the triangle``# with area = (S / 2)``def` `findTriangle(S) :` `    ``# Fix the two pairs of coordinates``    ``X1 ``=` `0``; Y1 ``=` `0``;``    ``X2 ``=` `MAX``; Y2 ``=` `1``;` `    ``# Find (X3, Y3) with integer coordinates``    ``X3 ``=` `(``MAX` `-` `S ``%` `MAX``) ``%` `MAX``;``    ``Y3 ``=` `(S ``+` `X3) ``/` `MAX``;` `    ``print``(``"("``, X1, ``","``, Y1, ``")"``);``    ``print``(``"("``, X2, ``","``, Y2, ``")"``);``    ``print``(``"("``, X3, ``","``, Y3, ``")"``);` `# Driver code``if` `__name__ ``=``=` `"__main__"` `:` `    ``S ``=` `4``;` `    ``findTriangle(S);` `# This code is contributed by kanugargng`

## C#

 `// C# implementation of the above approach``using` `System;``    ` `class` `GFG``{``    ``static` `readonly` `long` `MAX = 1000000000;``    ` `    ``// Function to find the triangle``    ``// with area = (S / 2)``    ``static` `void` `findTriangle(``long` `S)``    ``{``    ` `        ``// Fix the two pairs of coordinates``        ``long` `X1 = 0, Y1 = 0;``        ``long` `X2 = MAX, Y2 = 1;``    ` `        ``// Find (X3, Y3) with integer coordinates``        ``long` `X3 = (MAX - S % MAX) % MAX;``        ``long` `Y3 = (S + X3) / MAX;``    ` `        ``Console.WriteLine(``"("` `+ X1 +``                         ``", "` `+ Y1 + ``")"``);``        ``Console.WriteLine(``"("` `+ X2 +``                         ``", "` `+ Y2 + ``")"``);``        ``Console.WriteLine(``"("` `+ X3 +``                         ``", "` `+ Y3 + ``")"``);``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `Main (String[] args)``    ``{``        ``long` `S = 4;``    ` `        ``findTriangle(S);``    ``}``}` `// This code is contributed by PrinciRaj1992`

## Javascript

 ``

Output:

```(0, 0)
(1000000000, 1)
(999999996, 1)```

Time Complexity: O(1)

Auxiliary Space: O(1)

My Personal Notes arrow_drop_up