#include using namespace std; class cStation { protected: queue items; public: cStation *next; cStation(); ~cStation(); void add(int item); virtual void work() = 0; virtual void pass() = 0; virtual void print() = 0; bool empty(); }; class cBucket : public cStation { public: cBucket(); ~cBucket(); void work(); void pass(); void print(); }; class cWork : public cStation { private: int curTime, maxTime; public: cWork(int t); ~cWork(); void work(); void pass(); void print(); }; class cAssembly { private: cStation *line; void init(); bool done(); public: cAssembly(); ~cAssembly(); void run(); };