class jusu{ public: virtual int p(){ return 0; } }; class orenji : public jusu{ public: int p(){ return 120; } }; class kora : public jusu{ public: int p(){ return 120; } }; class saida : public jusu{ public: int p(){ return 120; } }; class okane{ int _10, _50, _100, _500, _1000; public: okane(){} okane(int a, int b, int c, int d, int e){ _10=a; _50=b; _100=c; _500=d; _1000=e; } int p(){ return _10*10+_50*50+_100*100+_500*500+_1000*1000; } }; class hanbaiki{ public: okane Buy(okane kane, int o, int k, int s, jusu *syohin){ int out=0; for(int i=0; i<o; ++i, syohin[out++] = orenji()); for(int i=0; i<k; ++i, syohin[out++] = kora()); for(int i=0; i<s; ++i, syohin[out++] = saida()); int turi = kane.p()-o*orenji().p()+k*kora().p()+s*saida().p(); int _1000=turi/1000; turi-=_1000*1000; int _500=turi/500; turi-=_500*500; int _100=turi/100; turi-=_100*100; int _50=turi/50; turi-=_50*50; int _10=turi/10; turi-=_10*10; return okane(_10, _50, _100, _500, _1000); }}; int main(){ jusu syohin[100]; okane oturi = hanbaiki().Buy(okane(1,1,1,1,1), 1, 1, 1, syohin); return 0; };