Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- /**
- * Created by Damjan on 13.8.2016.
- */
- /*
- *
- * Хешот беше со дадени името на општината, временски интервал и температура да се испечати влезот со
- највисоката температура за општината која се бара, пример за влез:
- 4
- Скопје 13:00 15:30 25.6
- Прилеп 12:00 18:00 23.0
- Битола 16:00 18:30 22.3
- Прилеп 18:00 20:30 18.2
- Прилеп
- Излезот ќе биде :
- Прилеп 12:00-18:00 23.0
- * */
- public class Measurements {
- public static void main(String[] args) throws IOException {
- BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
- int N = Integer.parseInt(reader.readLine());
- Map<String, Municipality> measurements = new HashMap<>();
- for (int i = 0; i < N; ++i) {
- String[] parts = reader.readLine().split(" ");
- String name = parts[0];
- String start = parts[1];
- String end = parts[2];
- double temperature = Double.parseDouble(parts[3]);
- if (measurements.containsKey(name)) {
- Municipality m = measurements.get(name);
- m.addMeasurement(temperature);
- } else {
- measurements.put(name, new Municipality(name, start, end, temperature));
- }
- }
- String municipality = reader.readLine();
- Municipality m = measurements.get(municipality);
- System.out.println(m.toString());
- }
- }
- class Municipality {
- private String name;
- private String start;
- private String end;
- private double temperature;
- private List<Double> measurements;
- public Municipality(String name, String start, String end, double temperature) {
- this.name = name;
- this.start = start;
- this.end = end;
- this.temperature = temperature;
- measurements = new ArrayList<>();
- measurements.add(temperature);
- }
- void addMeasurement(double temperature) {
- measurements.add(temperature);
- }
- double findMaxTemperature() {
- double max = measurements.get(0);
- for (double d : measurements) {
- if (d > measurements.get(measurements.size() - 1)) {
- max = d;
- } else {
- d = max;
- }
- }
- return max;
- }
- public String getName() {
- return name;
- }
- public String getStart() {
- return start;
- }
- public String getEnd() {
- return end;
- }
- public double getTemperature() {
- return temperature;
- }
- @Override
- public String toString() {
- return String.format("%s %s %s %.1f", name, start, end, findMaxTemperature());
- }
- }
Add Comment
Please, Sign In to add comment