# Puzzle | Minimum distance for Lizard

A lizard is present on one corner of cube, It wants to reach diagonally opposite corner of cube. You have to calculate minimum distance lizard has to cover to reach its destination.

Note : Lizard can’t fly, it moves along the wall.

You are given **a** representing side of cube.you have to calculate minimum distance lizard has to travel. **Examples:**

Input : 5 Output :11.1803 Input :2 Output :4.47214

As we have to calculate the minimum distance from one corner to another diagonally opposite corner. if lizard able to fly then the shortest distance will be length of diagonal. But it can’t.

So, to calculate minimum distance, just open the cube, as describe in diagram.

Let us suppose, lizard is initially at point **E**.and it has to reach at point **A**(as A is diagonally opposite to E).Now we have to find **AE**.

Just use Pythagoras theorem, As

AC=a

CE=CD+DE=2a

## C++

`// CPP program to find minimum distance to be travlled` `// by lizard.` `#include <bits/stdc++.h>` `#define ll long long int` `using` `namespace` `std;` `int` `main()` `{` ` ` `// side of cube` ` ` `ll a = 5;` ` ` `// understand from diagram` ` ` `ll AC = a;` ` ` `// understand from diagram` ` ` `ll CE = 2 * a;` ` ` `// minimum distance` ` ` `double` `shortestDistace = ` `sqrt` `(AC * AC + CE * CE);` ` ` `cout << shortestDistace << endl;` ` ` `return` `0;` `}` |

## Java

`//Java program to find minimum` `//distance to be travelled by lizard` `import` `java.util.*;` `class` `solution` `{` `public` `static` `void` `main(String arr[])` `{` ` ` `// side of the cube` ` ` `int` `a = ` `5` `;` ` ` `// understand from diagram` ` ` `int` `AC = a;` ` ` `// understand from diagram` ` ` `int` `CE = ` `2` `* a;` ` ` `// minimum distance` ` ` `double` `shortestDistace = Math.sqrt(AC * AC + CE * CE);` ` ` `System.out.println(shortestDistace);` `}` `}` |

## Python3

`# Python3 program to find minimum` `# distance to be travelled by lizard` `import` `math` `#side of cube` `if` `__name__` `=` `=` `'__main__'` `:` ` ` `a ` `=` `5` `#understand from diagram` ` ` `AC ` `=` `a` `#understand from diagram` ` ` `CE ` `=` `2` `*` `a` `#minimum distance` ` ` `shortestDistace ` `=` `math.sqrt(AC ` `*` `AC ` `+` `CE ` `*` `CE)` ` ` `print` `(shortestDistace)` `#this code is Contributed by Shashank_Sharma` |

## C#

`// C# program to find minimum` `// distance to be travelled by lizard` `using` `System;` `class` `GFG` `{` `public` `static` `void` `Main()` `{` ` ` `// side of the cube` ` ` `int` `a = 5;` ` ` `// understand from diagram` ` ` `int` `AC = a;` ` ` `// understand from diagram` ` ` `int` `CE = 2 * a;` ` ` `// minimum distance` ` ` `double` `shortestDistace = Math.Sqrt(AC * AC + CE * CE);` ` ` `Console.Write(shortestDistace);` `}` `}` `// This code is contributed by ita_c` |

## PHP

`<?php` `// PHP program to find minimum distance` `// to be travlled by lizard.` `// side of cube` `$a` `= 5;` `// understand from diagram` `$AC` `= ` `$a` `;` `// understand from diagram` `$CE` `= 2 * ` `$a` `;` `// minimum distance` `$shortestDistance` `= (double)(sqrt(` `$AC` `* ` `$AC` `+` ` ` `$CE` `* ` `$CE` `));` `echo` `$shortestDistance` `. ` `"\n"` `;` `// This code is contributed` `// by Akanksha Rai` `?>` |

## Javascript

`<script>` `// Javascript program to find minimum distance to be travlled` `// by lizard.` `// side of cube` `var` `a = 5;` `// understand from diagram` `var` `AC = a;` `// understand from diagram` `var` `CE = 2 * a;` `// minimum distance` `var` `shortestDistace = Math.sqrt(AC * AC + CE * CE);` `document.write( shortestDistace.toFixed(4));` `</script>` |

**Output:**

11.1803