1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | #include <iostream> #include <string> #include <map> class Item { public: Item(){}; Item(int is, float upp, float usp) : in_stock(is), unit_purchase_price(upp), unit_sale_price(usp) {}; int in_stock; float unit_purchase_price; float unit_sale_price; }; class Inventory { private: typedef std::map<std::string,Item> item_map; typedef std::map<std::string,Item>::const_iterator im_i; item_map m; public: void update_item(std::string const & item, int update_quantity, float buy_price, float sell_price){ Item i(update_quantity, buy_price, sell_price); m[item] = i; } void print_items(void) const{ std::cout << "Item,In_Stock,Purchase_Price,Sale_Price" << std::endl; for( im_i i = m.begin(); i!= m.end(); ++i) std::cout << i->first << "," << i->second.in_stock << "," << i->second.unit_purchase_price << "," << i->second.unit_sale_price << std::endl; } float profit(std::string const & a_thing) const{ im_i it = m.find(a_thing); if( it == m.end() ){ std::cout << "No such item" << std::endl; // well shit return 0.0; } return static_cast<float>( it->second.in_stock)* (it->second.unit_sale_price - it->second.unit_purchase_price); } }; int main(){ Inventory i; i.update_item("A fucking toast", 1, 0.5, 100.0); i.update_item("oranges", 10, 1.5, 10.0); i.update_item("Unruly children", 6, 25, 130.50); i.update_item("Dwarves", 1.5, 5550, 51000.00); i.print_items(); std::cout << "Profit for \"A fucking toast\": " << i.profit("A fucking toast") << std::endl; } |
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8bWFwPgoKY2xhc3MgSXRlbSB7CiAgICBwdWJsaWM6CgkJSXRlbSgpe307CgkJSXRlbShpbnQgaXMsIGZsb2F0IHVwcCwgZmxvYXQgdXNwKSA6CgkJCWluX3N0b2NrKGlzKSwgdW5pdF9wdXJjaGFzZV9wcmljZSh1cHApLAoJCQl1bml0X3NhbGVfcHJpY2UodXNwKSB7fTsKCQlpbnQgaW5fc3RvY2s7CgkJZmxvYXQgdW5pdF9wdXJjaGFzZV9wcmljZTsKCQlmbG9hdCB1bml0X3NhbGVfcHJpY2U7Cn07CgpjbGFzcyBJbnZlbnRvcnkgewoJcHJpdmF0ZToKCQl0eXBlZGVmIHN0ZDo6bWFwPHN0ZDo6c3RyaW5nLEl0ZW0+IGl0ZW1fbWFwOwoJCXR5cGVkZWYgc3RkOjptYXA8c3RkOjpzdHJpbmcsSXRlbT46OmNvbnN0X2l0ZXJhdG9yIGltX2k7CgkJaXRlbV9tYXAgbTsKCXB1YmxpYzoKCQl2b2lkIHVwZGF0ZV9pdGVtKHN0ZDo6c3RyaW5nIGNvbnN0ICYgaXRlbSwgaW50IHVwZGF0ZV9xdWFudGl0eSwKCQkJCQlmbG9hdCBidXlfcHJpY2UsIGZsb2F0IHNlbGxfcHJpY2UpewoKCQkJSXRlbSBpKHVwZGF0ZV9xdWFudGl0eSwgYnV5X3ByaWNlLCBzZWxsX3ByaWNlKTsKCQkJbVtpdGVtXSA9IGk7CgkJfQoJCXZvaWQgcHJpbnRfaXRlbXModm9pZCkgY29uc3R7CgkJCXN0ZDo6Y291dCA8PCAiSXRlbSxJbl9TdG9jayxQdXJjaGFzZV9QcmljZSxTYWxlX1ByaWNlIiA8PCBzdGQ6OmVuZGw7CgkJCWZvciggaW1faSBpID0gbS5iZWdpbigpOwoJCQkJaSE9IG0uZW5kKCk7CgkJCQkrK2kpCgkJCQlzdGQ6OmNvdXQgPDwgaS0+Zmlyc3QgPDwgIiwiIDw8IGktPnNlY29uZC5pbl9zdG9jayA8PCAiLCIKCQkJCQk8PCBpLT5zZWNvbmQudW5pdF9wdXJjaGFzZV9wcmljZSA8PCAiLCIgCgkJCQkJPDwgaS0+c2Vjb25kLnVuaXRfc2FsZV9wcmljZSA8PCBzdGQ6OmVuZGw7CgkJfQoJCWZsb2F0IHByb2ZpdChzdGQ6OnN0cmluZyBjb25zdCAmIGFfdGhpbmcpIGNvbnN0ewoJCQlpbV9pIGl0ID0gbS5maW5kKGFfdGhpbmcpOwoJCQlpZiggaXQgPT0gbS5lbmQoKSApewoJCQkJc3RkOjpjb3V0IDw8ICJObyBzdWNoIGl0ZW0iIDw8IHN0ZDo6ZW5kbDsgLy8gd2VsbCBzaGl0CgkJCQlyZXR1cm4gMC4wOwoJCQl9CgkJCXJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4oIGl0LT5zZWNvbmQuaW5fc3RvY2spKgoJCQkJKGl0LT5zZWNvbmQudW5pdF9zYWxlX3ByaWNlIC0gaXQtPnNlY29uZC51bml0X3B1cmNoYXNlX3ByaWNlKTsKCQl9Cn07CgoKaW50IG1haW4oKXsKCUludmVudG9yeSBpOwoJaS51cGRhdGVfaXRlbSgiQSBmdWNraW5nIHRvYXN0IiwgMSwgMC41LCAxMDAuMCk7CglpLnVwZGF0ZV9pdGVtKCJvcmFuZ2VzIiwgMTAsIDEuNSwgMTAuMCk7CglpLnVwZGF0ZV9pdGVtKCJVbnJ1bHkgY2hpbGRyZW4iLCA2LCAyNSwgMTMwLjUwKTsKCWkudXBkYXRlX2l0ZW0oIkR3YXJ2ZXMiLCAxLjUsIDU1NTAsIDUxMDAwLjAwKTsKCWkucHJpbnRfaXRlbXMoKTsKCXN0ZDo6Y291dCA8PCAiUHJvZml0IGZvciBcIkEgZnVja2luZyB0b2FzdFwiOiAiIDw8IGkucHJvZml0KCJBIGZ1Y2tpbmcgdG9hc3QiKSA8PCBzdGQ6OmVuZGw7Cn0K
-
upload with new input
-
result: Success time: 0.02s memory: 2864 kB returned value: 0
Item,In_Stock,Purchase_Price,Sale_Price A fucking toast,1,0.5,100 Dwarves,1,5550,51000 Unruly children,6,25,130.5 oranges,10,1.5,10 Profit for "A fucking toast": 99.5


