#include #include #include using namespace std; int parsepenez(char *s) { int i = -1, sum = 0; while (s[++i] != 0) { if (s[i] < '0' || s[i] > '9') continue; sum *= 10; sum += s[i] - '0'; } return sum; } struct ucet { char cislo[10]; int penez; }; map u; int main() { int poc; char cmd[50]; scanf("%d", &poc); while (poc != 0) { u.clear(); while (poc-- > 0) { ucet nu; char pen[10]; scanf("%s %s", nu.cislo, pen); nu.penez = parsepenez(pen); u.insert(pair(nu.cislo, nu)); } scanf("%s", cmd); while (cmd[0] != 'e') { if (cmd[0] == 'c') { ucet nu; nu.penez = 0; scanf("%s", nu.cislo); pair::iterator, bool> res = u.insert(pair(nu.cislo, nu)); if (res.second) { printf("create: ok\n"); } else { printf("create: already exists\n"); } } else if (cmd[0] == 'd') { char cislo[20], penez[20]; scanf("%s %s", cislo, penez); map::iterator it = u.find(cislo); if (it == u.end()) { printf("deposit %s: no such account\n", penez); } else { (*it).second.penez += parsepenez(penez); printf("deposit %s: ok\n", penez); } } else if (cmd[0] == 'w') { char cislo[20], penez[20]; scanf("%s %s", cislo, penez); map::iterator it = u.find(cislo); if (it == u.end()) { printf("withdraw %s: no such account\n", penez); } else { int pp = parsepenez(penez); if ((*it).second.penez >= pp) { (*it).second.penez -= pp; printf("withdraw %s: ok\n", penez); } else { printf("withdraw %s: insufficient funds\n", penez); } } } else if (cmd[0] == 't') { char uod[20], udo[20], penez[20]; scanf("%s %s %s", uod, udo, penez); map::iterator o = u.find(uod); map::iterator d = u.find(udo); if (o == u.end() || d == u.end()) { printf("transfer %s: no such account\n", penez); } else { if (o == d) { printf("transfer %s: same account\n", penez); } else { int pp = parsepenez(penez); if ((*o).second.penez < pp) { printf("transfer %s: insufficient funds\n", penez); } else { (*o).second.penez -= pp; (*d).second.penez += pp; if ((*o).second.cislo[5] == (*d).second.cislo[5]) { printf("transfer %s: ok\n", penez); } else { printf("transfer %s: interbank\n", penez); } } } } } scanf("%s", cmd); } printf("end\n\n"); scanf("%d", &poc); } printf("goodbye\n"); return 0; }