Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package pfRetake_27Aug_2;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.HashMap;
- public class IronGirder {
- public static void main(String[] args) throws IOException {
- BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
- HashMap<String, Girder> girders = new HashMap<>();
- while (true) {
- String input = reader.readLine();
- if ("Slide rule".equals(input)) {
- break;
- }
- String[] tokens = input.split(":");
- String townName = tokens[0];
- String[] timePassengers = tokens[1].split("->");
- // If it's not ambushed
- if (!timePassengers[0].equals("ambush")) {
- int time = Integer.parseInt(timePassengers[0]);
- int passengers = Integer.parseInt(timePassengers[1]);
- if (!girders.containsKey(townName)) {
- Girder girder = new Girder(townName, time, passengers);
- girders.put(townName, girder);
- } else {
- Girder girder = girders.get(townName);
- if (time < girder.getTime() || girder.getTime() == 0) {
- girder.setTime(time);
- }
- girder.addPassengers(passengers);
- }
- }
- // TODO:If it's ambushed
- else {
- if (girders.containsKey(townName)) {
- int passengers = Integer.parseInt(timePassengers[1]);
- Girder girder = girders.get(townName);
- girder.setTime(0);
- girder.removePassengers(passengers);
- }
- }
- }
- girders.entrySet().stream().sorted((e1,e2) -> {
- int compare = Integer.compare(e1.getValue().getTime(),e2.getValue().getTime());
- if (compare == 0){
- return e1.getKey().compareTo(e2.getKey());
- } return compare;
- }).forEach(e -> {
- if (e.getValue().getTime() <= 0 || e.getValue().getPassengers() <= 0){
- }
- else {
- System.out.printf("%s -> Time: %d -> Passengers: %d%n",e.getKey()
- ,e.getValue().getTime(),e.getValue().getPassengers());
- }
- });
- }
- }
- class Girder {
- private String town;
- private int time;
- private int passengers;
- public Girder(String town, int time, int passengers) {
- this.town = town;
- this.time = time;
- this.passengers = passengers;
- }
- public String getTown() {
- return town;
- }
- public void setTown(String town) {
- this.town = town;
- }
- public int getTime() {
- return time;
- }
- public void setTime(int time) {
- this.time = time;
- }
- public int getPassengers() {
- return passengers;
- }
- public void addPassengers(int passengers) {
- this.passengers += passengers;
- }
- public void removePassengers(int passengers){
- this.passengers -= passengers;
- }
- public void setPassengers(int passengers) {
- this.passengers = passengers;
- }
- }
Add Comment
Please, Sign In to add comment