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