#ifndef MAIN_H #define MAIN_H #include #include #include #include class State { public: std::vector heights; std::vector> stacks; int max_width; int max_height; int size; State(std::vector heights, int height, int _size); void apply_perm(std::vector perm); void relocate(int i1, int i2); void retrieve(int i); void print(); State copy(); std::pair next_req(); bool valid_move(int i, int j); int min_stack(int forbidden); int step_L(int i, int j); }; #endif // MAIN_H