import java.util.*; // System.out.println(); public class contest { private class Ucet { String cisloUctu; double stav; Ucet(String cisloUctu, double stav) { this.cisloUctu = cisloUctu; this.stav = stav; } } void flush(ArrayList withdrawAccounts, ArrayList outputs) { System.out.println(withdrawAccounts.size() + 4); System.out.println("1111/1 100.00"); System.out.println("1112/2 100.00"); System.out.println("1112/5 100.00"); System.out.println("1113/1 0.00"); // System.out.println(",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," + outputs.size()); for(int index = 0; index < withdrawAccounts.size(); index++) { System.out.println("" + (2223 + index) + "/1 10000.00"); } for(int index = 0; index < outputs.size(); index++) { // System.out.println("::::::::::::::::::::::::::::::"); System.out.println(outputs.get(index)); } System.out.println("end"); System.out.println(); } void run() { Scanner sc = new Scanner(System.in); // TreeMap accounts; ArrayList withdrawAccounts = new ArrayList(); Ucet ucet = new Ucet("", 10000.0); withdrawAccounts.add(ucet); int count = 0; int created = 0; ArrayList outputs = new ArrayList(); while(true) { char command = sc.next().charAt(0); // System.out.println("command: " + command); if(command == 'g') { System.out.println("0"); break; } if(command == 'e') { flush(withdrawAccounts, outputs); outputs = new ArrayList(); withdrawAccounts = new ArrayList(); ucet = new Ucet("", 10000.0); withdrawAccounts.add(ucet); count = 0; created = 0; } if(command == 'w') { String amountUn = sc.next(); double amount = Double.parseDouble(amountUn.substring(0, amountUn.length() - 1)); String status = sc.next(); if(status.charAt(0) == 'o') { if(ucet.stav >= amount) { ucet.stav = ucet.stav - amount; // System.out.println("+++++++++"); outputs.add(String.format("withdraw %d/1 %.2f", 2223 + count, amount)); } else { count++; ucet = new Ucet("", 10000.0); withdrawAccounts.add(ucet); ucet.stav = ucet.stav - amount; outputs.add(String.format("withdraw %d/1 %.2f", 2223 + count, amount)); } } if(status.charAt(0) == 'i') { outputs.add(String.format("withdraw 1113/1 %.2f", amount)); sc.next(); } if(status.charAt(0) == 'n') { outputs.add(String.format("withdraw 0000/0 %.2f", amount)); sc.next(); sc.next(); } } if(command == 'd') { String amountUn = sc.next(); double amount = Double.parseDouble(amountUn.substring(0, amountUn.length() - 1)); String status = sc.next(); if(status.charAt(0) == 'o') { outputs.add(String.format("deposit 1111/1 %.2f", amount)); } if(status.charAt(0) == 'n') { outputs.add(String.format("deposit 0000/0 %.2f", amount)); sc.next(); sc.next(); } } if(command == 't') { String amountUn = sc.next(); double amount = Double.parseDouble(amountUn.substring(0, amountUn.length() - 1)); String status = sc.next(); if(status.charAt(0) == 'o') { if(ucet.stav >= amount) { ucet.stav = ucet.stav - amount; outputs.add(String.format("transfer %d/1 1111/1 %.2f", 2223 + count, amount)); } else { count++; ucet = new Ucet("", 10000.0); withdrawAccounts.add(ucet); ucet.stav = ucet.stav - amount; outputs.add(String.format("transfer %d/1 1111/1 %.2f", 2223 + count, amount)); } } if(status.charAt(0) == 'i' && status.charAt(2) == 't') { if(ucet.stav >= amount) { ucet.stav = ucet.stav - amount; outputs.add(String.format("transfer %d/1 1112/2 %.2f", 2223 + count, amount)); } else { count++; ucet = new Ucet("", 10000.0); withdrawAccounts.add(ucet); ucet.stav = ucet.stav - amount; outputs.add(String.format("transfer %d/1 1112/2 %.2f", 2223 + count, amount)); } } if(status.charAt(0) == 's') { outputs.add(String.format("transfer 1111/1 1111/1 %.2f", amount)); sc.next(); } if(status.charAt(0) == 'i' && status.charAt(2) == 's') { outputs.add(String.format("transfer 1113/1 1111/1 %.2f", amount)); sc.next(); } if(status.charAt(0) == 'n') { outputs.add(String.format("transfer 0000/0 1111/1 %.2f", amount)); sc.next(); sc.next(); } } if(command == 'c') { String status = sc.next(); if(status.charAt(0) == 'o') { outputs.add("create " + (1001 + created++) + "/4"); } if(status.charAt(0) == 'a') { outputs.add("create 1112/5"); sc.next(); } } } } public static void main(String[] args) { new contest().run(); } }