DamSi

Untitled

Aug 13th, 2016
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.17 KB | None | 0 0
  1. package dopolnitelni_casovi.hashmaps;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.util.ArrayList;
  7. import java.util.HashMap;
  8. import java.util.List;
  9. import java.util.Map;
  10.  
  11. /**
  12.  * Created by Leoron on 13.8.2016.
  13.  */
  14.  
  15. /*
  16. *
  17. * Хешот беше со дадени името на општината, временски интервал и температура да се испечати влезот со
  18. највисоката температура за општината која се бара, пример за влез:
  19. 4
  20. Скопје 13:00 15:30 25.6
  21. Прилеп 12:00 18:00 23.0
  22. Битола 16:00 18:30 22.3
  23. Прилеп 18:00 20:30 18.2
  24. Прилеп
  25. Излезот ќе биде :
  26.  
  27. Прилеп 12:00-18:00 23.0
  28. * */
  29. public class Measurements {
  30.     public static void main(String[] args) throws IOException {
  31.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  32.         int N = Integer.parseInt(reader.readLine());
  33.         Map<String, Municipality> measurements = new HashMap<>();
  34.         for (int i = 0; i < N; ++i) {
  35.             String[] parts = reader.readLine().split(" ");
  36.             String name = parts[0];
  37.             String start = parts[1];
  38.             String end = parts[2];
  39.             double temperature = Double.parseDouble(parts[3]);
  40.             if (measurements.containsKey(name)) {
  41.                 Municipality m = measurements.get(name);
  42.                 m.timesMeasured++;
  43.                 m.addMeasurement(temperature);
  44.             } else {
  45.                 measurements.put(name, new Municipality(name, start, end, temperature));
  46.             }
  47.         }
  48.         String municipality = reader.readLine();
  49.         Municipality m = measurements.get(municipality);
  50.         System.out.println(m.toString());
  51.     }
  52. }
  53.  
  54. class Municipality {
  55.     private String name;
  56.     private String start;
  57.     private String end;
  58.     private double temperature;
  59.     private List<Double> measurements;
  60.     protected int timesMeasured;
  61.  
  62.     public Municipality(String name, String start, String end, double temperature) {
  63.         this.name = name;
  64.         this.start = start;
  65.         this.end = end;
  66.         this.temperature = temperature;
  67.         measurements = new ArrayList<>();
  68.         measurements.add(temperature);
  69.         timesMeasured = 1;
  70.     }
  71.  
  72.     void addMeasurement(double temperature) {
  73.         measurements.add(temperature);
  74.     }
  75.  
  76.     double findMaxTemperature() {
  77.         double max = measurements.get(0);
  78.         for (double d : measurements) {
  79.             if (d > measurements.get(measurements.size() - 1)) {
  80.                 max = d;
  81.             } else {
  82.                 d = max;
  83.             }
  84.         }
  85.         return max;
  86.     }
  87.  
  88.     public String getName() {
  89.         return name;
  90.     }
  91.  
  92.     public String getStart() {
  93.         return start;
  94.     }
  95.  
  96.     public String getEnd() {
  97.         return end;
  98.     }
  99.  
  100.     public double getTemperature() {
  101.         return temperature;
  102.     }
  103.  
  104.     @Override
  105.     public String toString() {
  106.         return String.format("%s %s %s %.1f", name, start, end, findMaxTemperature());
  107.     }
  108. }
Advertisement
Add Comment
Please, Sign In to add comment