[Question]
Monkeys in the Garden
[www.techgig.com]
In a garden, trees are arranged in
a circular fashion with an equal distance between two adjacent trees. The
height of trees may vary. Two monkeys live in that garden and they were very
close to each other. One day they quarreled due to some misunderstanding. None
of them were ready to leave the garden. But each one of them wants that if the
other wants to meet him, it should take maximum possible time to reach him,
given that they both live in the same garden.
The conditions are that a monkey
cannot directly jump from one tree to another. There are 30 trees in the
garden. If the height of a tree is H, a monkey can live at any height from 0 to
H. Lets say he lives at the height of K then it would take him K unit of time
to climb down to the ground level. Similarly, if a monkey wants to climb up to
K height it would again take K unit of time. The time to travel between two
adjacent trees is 1 unit. A monkey can only travel in a circular fashion in the
garden because there is a pond at the center of the garden.
So the question is where should
two monkeys live such that the traveling time between them is maximum while
choosing the shortest path between them in any direction clockwise or
anti-clockwise. You have to answer only the maximum traveling time.
[Sample Input]
The First Line consists of Total
Number of Trees (N). Each of the Following N Lines contains the Height of Trees
in a Clockwise Fashion.
Constraints
1 <= Total Trees <= 30
1 <= Height Of Trees(H) <=
10000
[Sample Output]
You must Print an Integer which
will be the Maximum Possible Travel Time.
[Explanation of the Solution]
In this problem one monkey wants to meet another monkey .so we need to find maximum distances travel by two monkeys.In that first we need find the clockwise and Anticlockwise distance between two monkeys.consider short distance between them and calculate both tree heights.and find the max distance.
Github Repo for Code: https://github.com/em-tpt-kvijay/emt_codeathon_sep_2023_solutions/blob/master/src/codeathon/Codeathon03_vijay.java
[Solution (Java Code)]
package codeathon;
import java.util.Scanner;
public class Codeathon03_vijay {
public static void main(String[] args) {
Scanner sc = new Scanner (System.in);
int clockwise=0;
int anticlockwise=0;
int lenght=0;
int total=0;
System.out.println("Enter no of trees");
int n = sc.nextInt();
int height[] = new int[n];
int max=0;
System.out.println("Enter their respective heights of the tree");
for(int i=0;i<n;i++) {
height[i] = sc.nextInt();
}
max=height[0];
for(int i=0;i<n;i++) {
for(int j=i+1;j<n;j++) {
clockwise=Math.abs(((n-j)+i));//find the distance between trees Clockwise
anticlockwise=Math.abs((j-i));//find the distance between trees Anticlockwise
if(clockwise<=anticlockwise) {
lenght=clockwise;
}
else{
lenght=anticlockwise;
}
total=lenght+height[i]+height[j];
if(total>max)
max=total;
}
}
System.out.println("maximum time travel between trees :"+max);
}
}
Thank you,
k.vijay(Intern)
vijay.keradhi@eminds.ai
Enterprise Minds.
No comments:
Post a Comment