#include #include #include using namespace std; #define EPS 0.00001 #define MAX_ACCOUNT 10001 #define MAX_BANK 11 struct account { account() { money = 0; run = 0; } double money; int run; }; account accounts[MAX_ACCOUNT][MAX_BANK]; int R = 0; void load_balance(int n) { for (int i = 0; i < n; i++) { int acc, bnk; double money; scanf("%d/%d %lf", &acc, &bnk, &money); accounts[acc][bnk].money = money; accounts[acc][bnk].run = R; } } void process_operations() { char cmd[20]; int acc = 0, bnk = 0; int acc2 = 0, bnk2 = 0; double money = 0; while(true) { scanf("%s", cmd); switch(cmd[0]) { case 'e': printf("end\n\n"); return; case 'c': scanf("%d/%d", &acc, &bnk); if ( accounts[acc][bnk].run == R ) { printf("create: already exists\n"); } else { accounts[acc][bnk].money = 0; accounts[acc][bnk].run = R; printf("create: ok\n"); } break; case 'd': scanf("%d/%d %lf", &acc, &bnk, &money); printf("%s %.02lf: ", cmd, money); if ( accounts[acc][bnk].run != R ) { printf("no such account\n"); } else { accounts[acc][bnk].money += money; printf("ok\n"); } break; case 'w': scanf("%d/%d %lf", &acc, &bnk, &money); printf("%s %.02lf: ", cmd, money); if ( accounts[acc][bnk].run != R ) { printf("no such account\n"); break; } if (accounts[acc][bnk].money < money-EPS) { printf("insufficient funds\n"); break; } accounts[acc][bnk].money -= money; printf("ok\n"); break; case 't': scanf("%d/%d %d/%d %lf", &acc, &bnk, &acc2, &bnk2, &money); printf("%s %.02lf: ", cmd, money); if ( accounts[acc][bnk].run != R ) { printf("no such account\n"); break; } if ( accounts[acc2][bnk2].run != R ) { printf("no such account\n"); break; } if ( acc == acc2 && bnk == bnk2 ) { printf("same account\n"); break; } if (accounts[acc][bnk].money < money-EPS) { printf("insufficient funds\n"); break; } accounts[acc][bnk].money -= money; accounts[acc][bnk].money += money; if (bnk == bnk2) printf("ok\n"); else printf("interbank\n"); break; } } } int main(int argc, char *argv[]) { while(true) { R++; int n; scanf("%d", &n); if (n == 0) break; load_balance(n); process_operations(); } printf("goodbye\n"); return 0; }