#include #include struct konto { int balance; int exists; }; #define KONT 10000 #define BANK 10 struct konto banky[10][10000] = {{{0,0}}}; int main(void) { int a; int k, b, k1, b1, x, y; char cmd[10]; scanf("%d", &a); while (a) { for (; a; a--) { scanf("%d/%d %d.%d", &k, &b, &x, &y); for (;k >= 10000 || b >= 10;); banky[b][k].exists = 1; banky[b][k].balance = x*100+y; } do { scanf("%s", cmd); if (!strcmp(cmd, "create")) { scanf("%d/%d", &k, &b); for (;k >= 10000 || b >= 10;); if (banky[b][k].exists) { printf("create: already exists\n"); } else { banky[b][k].exists = 1; banky[b][k].balance = 0; printf("create: ok\n"); } } else if (!strcmp(cmd, "deposit")) { scanf("%d/%d %d.%d", &k, &b, &x, &y); for (;k >= 10000 || b >= 10;); if (!banky[b][k].exists) { printf("deposit %d.%02d: no such account\n", x, y); } else { banky[b][k].balance += x*100+y; printf("deposit %d.%02d: ok\n", x, y); } } else if (!strcmp(cmd, "withdraw")) { scanf("%d/%d %d.%d", &k, &b, &x, &y); for (;k >= 10000 || b >= 10;); if (!banky[b][k].exists) { printf("withdraw %d.%02d: no such account\n", x, y); } else if (banky[b][k].balance < x*100+y) { printf("withdraw %d.%02d: insufficient funds\n", x, y); } else { banky[b][k].balance -= x*100+y; printf("withdraw %d.%02d: ok\n", x, y); } } else if (!strcmp(cmd, "transfer")) { scanf("%d/%d %d/%d %d.%d", &k, &b, &k1, &b1, &x, &y); for (;k >= 10000 || b >= 10;); for (;k1 >= 10000 || b1 >= 10;); if (!banky[b][k].exists || !banky[b1][k1].exists) { printf("transfer %d.%02d: no such account\n", x, y); } else if (b == b1 && k == k1) { printf("transfer %d.%02d: same account\n", x, y); } else if (banky[b][k].balance < x*100+y) { printf("transfer %d.%02d: insufficient funds\n", x, y); } else { banky[b][k].balance -= x*100+y; banky[b1][k1].balance += x*100+y; if (b == b1) { printf("transfer %d.%02d: ok\n", x, y); } else { printf("transfer %d.%02d: interbank\n", x, y); } } } else if (!strcmp(cmd, "end")) { memset(banky, 0, sizeof(banky)); printf("end\n\n"); break; } } while(1); scanf("%d", &a); } printf("goodbye\n"); return 0; }