#include #include #include using namespace std; struct buyer { string name; float max_price; string accepted_sellers; int pos; }; struct seller { string name; float min_price; string accepted_buyers; int pos; }; int main() { for(;;) { int ppl_count; string komodita; cin >> ppl_count >> komodita; if(ppl_count == 0 && komodita.compare("END")==0) return 0; vector buyers; vector sellers; for(int i=0;i> name >> type >> value ; if(type.compare("buy")==0) { buyer b; b.name = name; b.max_price = value; b.pos = i; buyers.push_back(b); } else { seller s; s.name = name; s.min_price = value; s.pos = i; sellers.push_back(s); } } //cout << buyers.size() << " " << buyers[0].name << buyers[0].max_price << endl; vector::iterator bit; vector::iterator sit; for(bit = buyers.begin() ; bit != buyers.end() ; bit++) for(sit = sellers.begin() ; sit != sellers.end() ; sit++) { if(bit->max_price >= sit->min_price) { bit->accepted_sellers.push_back(' '); bit->accepted_sellers += sit->name; sit->accepted_buyers.push_back(' '); sit->accepted_buyers += bit->name; } } // TEST //for(bit = buyers.begin() ; bit != buyers.end() ; bit++) // cout << "B " << bit->name << " " << bit->max_price << bit->accepted_sellers << endl; //for(sit = sellers.begin() ; sit != sellers.end() ; sit++) // cout << "S " << sit->name << " " << sit->min_price << sit->accepted_buyers << endl; // TISK cout << komodita << endl; bit = buyers.begin(); sit = sellers.begin(); for(;;) { if(bit == buyers.end()) { cout << sit->name << ':' << (sit->accepted_buyers.empty() ? " NO-ONE " : sit->accepted_buyers) << endl; sit++; } else if(sit == sellers.end()) { cout << bit->name << ':' << (bit->accepted_sellers.empty() ? " NO-ONE " : bit->accepted_sellers) << endl; bit++; } else if(bit->pos < sit->pos) { cout << bit->name << ':' << (bit->accepted_sellers.empty() ? " NO-ONE " : bit->accepted_sellers) << endl; bit++; } else { cout << sit->name << ':' << (sit->accepted_buyers.empty() ? " NO-ONE " : sit->accepted_buyers) << endl; sit++; } if(bit == buyers.end() && sit == sellers.end()) break; } } return 0; }