#include #include using namespace std; #define MAX (1LL<<(30+3+2)) bitset *seen = 0; int main() { seen = new bitset; long long v = 0; long long k = -1; long long m = 0; for (long long n=0;; n++) { if (n) { if (v>=n && seen->test(v-n)) { if (k=n && !seen->test(v-n)) { v-=n; } else { v+=n; } } if (v>=MAX) { break; } else { seen->set(v); } } return 0; }