#include #include #include using namespace std; enum EAction { BUY, SELL }; struct issuer { string name; double money; EAction action; }; typedef unsigned long Uint; typedef signed long Sint; int main() { while(true) { string name; vector issuers; Uint num_issuers; cin >> num_issuers >> name; if(!num_issuers) { if(name != "END") cerr << "Chyba! Neni po nule END!" << endl; break; } issuers.resize(num_issuers); cout << name << endl; for(Uint i = 0; i < num_issuers; i++) { issuer new_issuer; cin >> new_issuer.name; string action; cin >> action >> new_issuer.money; //cout << new_issuer.money << " "; if(action == "buy") new_issuer.action = BUY; else if(action == "sell") new_issuer.action = SELL; else cerr << "Chyba! Neznama akce!" << endl; issuers.at(i) = new_issuer; } for(Uint i = 0; i < num_issuers; i++) { issuer &iss = issuers.at(i); cout << iss.name << ":"; bool founded = false; for(Uint j = 0; j < num_issuers; j++) { if(i == j) continue; issuer &pot = issuers.at(j); if(iss.action == pot.action) continue; if((iss.action == BUY)&&(iss.money >= pot.money)) { founded = true; cout << " " << pot.name; } else if((iss.action == SELL)&&(iss.money <= pot.money)) { founded = true; cout << " " << pot.name; } } if(!founded) cout << " NO-ONE"; cout << endl; } } return 0; }