class Node {
public:
Node * next = nullptr;
};
template<class TIter>
TIter find(TIter begin) {
auto fast = begin;
auto slow = begin;
for (;;) {
fast = fast->next;
if (!fast) break;
fast = fast->next;
if (!fast) break;
slow = slow->next;
}
return slow;
}
int main() {
Node single;
auto result = find(&single);
return 0;
}
CmNsYXNzIE5vZGUgewpwdWJsaWM6CiAgICBOb2RlICogbmV4dCA9IG51bGxwdHI7Cn07Cgp0ZW1wbGF0ZTxjbGFzcyBUSXRlcj4KVEl0ZXIgZmluZChUSXRlciBiZWdpbikgewogICAgYXV0byBmYXN0ID0gYmVnaW47CiAgICBhdXRvIHNsb3cgPSBiZWdpbjsKCiAgICBmb3IgKDs7KSB7CiAgICAgICAgZmFzdCA9IGZhc3QtPm5leHQ7CiAgICAgICAgaWYgKCFmYXN0KSBicmVhazsKICAgICAgICBmYXN0ID0gZmFzdC0+bmV4dDsKICAgICAgICBpZiAoIWZhc3QpIGJyZWFrOwogICAgICAgIHNsb3cgPSBzbG93LT5uZXh0OwogICAgfQoKICAgIHJldHVybiBzbG93Owp9CgppbnQgbWFpbigpIHsKICAgIE5vZGUgc2luZ2xlOwogICAgYXV0byByZXN1bHQgPSBmaW5kKCZzaW5nbGUpOwogICAgcmV0dXJuIDA7Cn0=