#include #include #include using namespace std; #define MAX (1LL<<25) bitset *seen = 0; vector cc; long long other(long long p) { seen->set(p); long long w=1; for (long long b=1;; b<<=1) { if ((p & b)==0) { if (cc.size()==w) { cc.resize(2*w); } for (long long k=0; k= MAX) { return -1; } if (!seen->test(c)) { return c; } } w*=2; } } } #define WANTED 10001 long long a[WANTED]; int main() { seen = new bitset; seen->set(0); // only positive integers cc.resize(1); long long v=1; for (long long n=1; v>0 && n