Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.IOException;
- import java.nio.file.Files;
- import java.nio.file.Path;
- import java.util.*;
- public class SubwayDelivery {
- public static void main(String[] args) throws IOException {
- List<String> lines = Files.readAllLines(Path.of("input.txt"));
- Deque<List<String>> orders = new ArrayDeque<>();
- Map<String, Long> train = new HashMap<>();
- Integer quantity = Integer.parseInt(lines.get(0));
- for (Integer i = 1; i <= quantity; i++) {
- List<String> line = List.of(lines.get(i).split(" "));
- if (line.get(0).equals("add")) {
- List<String> order = new ArrayList<>();
- order.add(line.get(2));
- order.add(line.get(1));
- orders.push(order);
- Long count = Long.parseLong(line.get(1));
- String item = line.get(2);
- if (!train.containsKey(line.get(2))) {
- train.put(item, count);
- } else {
- train.put(item, train.get(item) + count);
- }
- }
- if (line.get(0).equals("delete")) {
- Long delete = Long.parseLong(line.get(1));
- do {
- if (Integer.parseInt(orders.getFirst().get(1)) <= delete) {
- train.put(orders.getFirst().get(0), train.get(orders.getFirst().get(0)) - Integer.parseInt(orders.getFirst().get(1)));
- delete = delete - Integer.parseInt(orders.getFirst().get(1));
- orders.pop();
- } else {
- List<String> last = orders.getFirst();
- last.set(1, String.valueOf(Integer.parseInt(last.get(1)) - delete));
- train.put(last.get(0), train.get(last.get(0)) - delete);
- orders.pop();
- orders.push(last);
- delete = 0L;
- }
- } while (delete != 0);
- }
- if (line.get(0).equals("get")) {
- if (train.containsKey(line.get(1))) {
- System.out.println(train.get(line.get(1)));
- } else {
- System.out.println(0);
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement