Problem Statement 

You have a device that measures temperature once a minute. Sadly, the temperature sensor of your device is not 100% reliable,
and sometimes it reports wildly inaccurate values.
You don't have the resources to buy a new device so you decide to fix the problem by writing software for your device that will throw away invalid measurements.
We consider a measurement invalid if:
 the value is less than 273, or
 each value that was measured within 2 minutes before and after this one differs from this value by more than 2
In other words, when deciding whether a measurement is valid, you usually consider the previous two, and the next two measurements.
You are given a int[] measuredValues that contains temperatures measured in the last few minutes.
The temperatures are given in chronological order, i.e., the ith value is the temperature measured i minutes after the device was started.
Write a method that computes the average of the valid measurements. If no measurement is valid, return 300.0.


Definition 
 Class:  MeasuringTemperature  Method:  averageTemperature  Parameters:  int[]  Returns:  double  Method signature:  double averageTemperature(int[] measuredValues)  (be sure your method is public) 




Notes 
  The returned value must be accurate to within a relative or absolute error of 1E9. 
  The lowest possible temperature (in degrees Celsius) is 273.15. 
  It may seem weird that only integer temperatures are used in the input. This is only done to avoid rounding errors. 

Constraints 
  measuredValues contains between 2 and 50 elements, inclusive. 
  Each element of measuredValues will be between 1000 and 1000, inclusive. 

Examples 
0)  
  Returns: 12.0  All measurements are valid. During this period of time it was getting warmer. The average temperature is (9+11+12+13+15)/5 = 12. 


1)  
  Returns: 0.16666666666666666  The fifth measurement is clearly invalid. The average of the valid ones is slightly positive. 


2)  
  Returns: 0.16666666666666666  This time, the fifth measurement is only slightly off, but still we consider it to be invalid. 


3)  
  Returns: 0.2857142857142857  All the measurements are valid. 


4)  
  Returns: 29.857142857142858  Again, all these measurements are valid. (Sadly, the sensor malfunctioned twice in a row. Our approach can't deal with this situation.) 


5)  
  Returns: 4.0  The last measurement is invalid. (The measurements made within 2 minutes from the last measurement gave results 6 and 7, and neither of these values is close enough to 10.) 


6)  
 {35, 34, 34, 34, 35, 72, 34, 52, 36, 35, 36, 52, 36, 35, 981, 33} 
 Returns: 34.75  It's freezing cold and the sensor is malfunctioning quite often, but luckily we can identify all the wrong measurements (72, 52, 52, and 981) as invalid. 


7)  
  Returns: 273.0  The third measurement gives a temperature lower than 273, and thus is considered to be invalid. 


8)  
  Returns: 300.0  No valid measurements here. 

