#include <vector>
#include <iostream>
struct Node
{
Node(int i): i_(i) {}
int i_;
};
class FSM{
private:
std::vector<Node> nodeList;
int cap;
int obs;
int topNode;
public:
FSM(int nodeCap, int numObs){
cap = nodeCap;
obs = numObs;
topNode = -1;
}
bool addNode(){
if (isFull()) return false;
nodeList.push_back(Node(obs));
topNode++;
return true;
}
bool isFull() { return obs >= cap ? true : false; }
void printNodeLocations()
{
for(Node& n : nodeList) { std::cout << &n << std::endl; }
}
};
int main()
{
FSM machine(2, 0);
machine.addNode();
machine.addNode();
machine.printNodeLocations();
return 0;
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IE5vZGUKewogICAgTm9kZShpbnQgaSk6IGlfKGkpIHt9CiAgICBpbnQgaV87Cn07CgpjbGFzcyBGU017CiAgICBwcml2YXRlOgogICAgICAgIHN0ZDo6dmVjdG9yPE5vZGU+IG5vZGVMaXN0OwogICAgICAgIGludCBjYXA7CiAgICAgICAgaW50IG9iczsKICAgICAgICBpbnQgdG9wTm9kZTsKCiAgICBwdWJsaWM6CiAgICAgICAgRlNNKGludCBub2RlQ2FwLCBpbnQgbnVtT2JzKXsKICAgICAgICAgICAgY2FwID0gbm9kZUNhcDsKICAgICAgICAgICAgb2JzID0gbnVtT2JzOwogICAgICAgICAgICB0b3BOb2RlID0gLTE7CiAgICAgICAgfQoKICAgICAgICBib29sIGFkZE5vZGUoKXsKICAgICAgICAgICAgaWYgKGlzRnVsbCgpKSByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIG5vZGVMaXN0LnB1c2hfYmFjayhOb2RlKG9icykpOwogICAgICAgICAgICB0b3BOb2RlKys7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBib29sIGlzRnVsbCgpIHsgcmV0dXJuIG9icyA+PSBjYXAgPyB0cnVlIDogZmFsc2U7IH0KICAgICAgICAKICAgICAgICB2b2lkIHByaW50Tm9kZUxvY2F0aW9ucygpCiAgICAgICAgewogICAgICAgICAgICBmb3IoTm9kZSYgbiA6IG5vZGVMaXN0KSB7IHN0ZDo6Y291dCA8PCAmbiA8PCBzdGQ6OmVuZGw7IH0KICAgICAgICB9Cn07CgppbnQgbWFpbigpCnsKICAgIEZTTSBtYWNoaW5lKDIsIDApOwogICAgbWFjaGluZS5hZGROb2RlKCk7CiAgICBtYWNoaW5lLmFkZE5vZGUoKTsKICAgIG1hY2hpbmUucHJpbnROb2RlTG9jYXRpb25zKCk7CiAgICAKICAgIHJldHVybiAwOwp9