# Find two vertices of an isosceles triangle in which there is rectangle with opposite corners (0, 0) and (X, Y)

Given two integers **X** and **Y**. The task is to find two vertices of an isosceles triangle ABC(right-angled at B) which has one vertex at a point B(0, 0). And there is a rectangle with opposite sides (0, 0) and (X, Y). All the points of this rectangle are located inside or on the border of the triangle. Print 4 integers x1, y1, x2, y2, where A(x1, y1) and B(x2, y2).**Examples:**

Input :X = 3, Y = 3Output :6 0 0 6

Input :X = -3, y = -2Output :-5 0 0 -5

**Approach :**

Let Val = |x| + |y|. Then the first point is (Val * sign(x), 0) and the second point is (0, Val * sign(y)).

Let’s see how it works for x > 0 and y > 0. Other cases can be proved in a similar way.

We need to show, that (x, y) belongs to our triangle(including its borders). In fact (x, y) belongs to segment, connecting (x + y, 0) with (0, x + y). The line through (x + y, 0) and (0, x + y) is Y = – X + x + y. Using coordinates (x, y) in this equation proves our answer.

Below is the implementation of the above approach:

## C++

`// C++ program to find two vertices of an` `// isosceles triangle in which there is` `// rectangle with opposite side (0, 0) and (x, y)` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// Function to find two vertices of an` `// isosceles triangle in which there is` `// rectangle with opposite side (0, 0) and (x, y)` `int` `Vertices(` `int` `x, ` `int` `y)` `{` ` ` `// Required value;` ` ` `int` `val = ` `abs` `(x) + ` `abs` `(y);` ` ` `// print x1 and y1` ` ` `cout << val * (x < 0 ? -1 : 1) << ` `" 0 "` `;` ` ` `// print x2 and y3` ` ` `cout << ` `"0 "` `<< val * (y < 0 ? -1 : 1);` `}` `// Driver code` `int` `main()` `{` ` ` `int` `x = 3, y = 3;` ` ` `// Function call` ` ` `Vertices(x, y);` ` ` `return` `0;` `}` |

## Java

`// Java program to find two vertices of an` `// isosceles triangle in which there is` `// rectangle with opposite side (0, 0) and (x, y)` `class` `GFG` `{` `// Function to find two vertices of an` `// isosceles triangle in which there is` `// rectangle with opposite side (0, 0) and (x, y)` `static` `void` `Vertices(` `int` `x, ` `int` `y)` `{` ` ` `// Required value;` ` ` `int` `val = Math.abs(x) + Math.abs(y);` ` ` `// print x1 and y1` ` ` `System.out.print(val * (x < ` `0` `? -` `1` `: ` `1` `) + ` `" 0 "` `);` ` ` `// print x2 and y3` ` ` `System.out.print(` `"0 "` `+ val * (y < ` `0` `? -` `1` `: ` `1` `));` `}` `// Driver code` `public` `static` `void` `main(String[] args)` `{` ` ` `int` `x = ` `3` `, y = ` `3` `;` ` ` `// Function call` ` ` `Vertices(x, y);` `}` `}` `// This code is contributed by Rajput-Ji` |

## Python3

`# Python3 program to find two vertices of an` `# isosceles triangle in which there is` `# rectangle with opposite side (0, 0) and (x, y)` `# Function to find two vertices of an` `# isosceles triangle in which there is` `# rectangle with opposite side (0, 0) and (x, y)` `def` `Vertices(x, y) :` ` ` `# Required value;` ` ` `val ` `=` `abs` `(x) ` `+` `abs` `(y);` ` ` `# print x1 and y1` ` ` `if` `x < ` `0` `:` ` ` `x ` `=` `-` `1` ` ` `else` `:` ` ` `x ` `=` `1` ` ` ` ` `print` `(val ` `*` `x,` `"0"` `,end ` `=` `" "` `);` ` ` `# print x2 and y3` ` ` `if` `y < ` `0` `:` ` ` `y ` `=` `-` `1` ` ` `else` `:` ` ` `y ` `=` `1` ` ` ` ` `print` `(` `"0"` `,val ` `*` `y);` `# Driver code` `if` `__name__ ` `=` `=` `"__main__"` `:` ` ` `x ` `=` `3` `; y ` `=` `3` `;` ` ` `# Function call` ` ` `Vertices(x, y);` `# This code is contributed by AnkitRai01` |

## C#

`// C# program to find two vertices of an` `// isosceles triangle in which there is` `// rectangle with opposite side (0, 0) and (x, y)` `using` `System;` ` ` `class` `GFG` `{` `// Function to find two vertices of an` `// isosceles triangle in which there is` `// rectangle with opposite side (0, 0) and (x, y)` `static` `void` `Vertices(` `int` `x, ` `int` `y)` `{` ` ` `// Required value;` ` ` `int` `val = Math.Abs(x) + Math.Abs(y);` ` ` `// print x1 and y1` ` ` `Console.Write(val * (x < 0 ? -1 : 1) + ` `" 0 "` `);` ` ` `// print x2 and y3` ` ` `Console.Write(` `"0 "` `+ val * (y < 0 ? -1 : 1));` `}` `// Driver code` `public` `static` `void` `Main(String[] args)` `{` ` ` `int` `x = 3, y = 3;` ` ` `// Function call` ` ` `Vertices(x, y);` `}` `}` `// This code is contributed by Rajput-Ji` |

## Javascript

`<script>` `// JavaScript program to find two vertices of an` `// isosceles triangle in which there is` `// rectangle with opposite side (0, 0) and (x, y)` `// Function to find two vertices of an` `// isosceles triangle in which there is` `// rectangle with opposite side (0, 0) and (x, y)` `function` `Vertices(x, y)` `{` ` ` `// Required value;` ` ` `let val = Math.abs(x) + Math.abs(y);` ` ` `// print x1 and y1` ` ` `document.write(val * (x < 0 ? -1 : 1) + ` `" 0 "` `);` ` ` `// print x2 and y3` ` ` `document.write(` `"0 "` `+ val * (y < 0 ? -1 : 1));` `}` `// Driver code` ` ` `let x = 3, y = 3;` ` ` `// Function call` ` ` `Vertices(x, y);` `// This code is contributed by Surbhi Tyagi.` `</script>` |

**Output:**

6 0 0 6

**Time Complexity : **O(1)