output_description: Print the base -2 representation of N.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
attempt: #include<iostream>
  #include <algorithm>
  #include <functional>
  #include<vector>
  #include<math.h>
  #include <assert.h>
  #include<bitset>
  #include<string>
  #include <deque>
  #include<queue>
  #include <iomanip>
  #include<map>
  #include <random>
  #include<type_traits>
  #include<stack>
  #include <sstream> 
  #include <limits>
  #include <numeric>
  #include<string.h>
  #include<set>
  #include <climits>
  using namespace std;
  typedef unsigned long long ull;
  #define ll long long int
  static const double PI = 3.141592653589793;
  const ll INF = 100000000000000;
  ll mod = 1000000007;
  //typedef vector<int> V;
  //typedef vector<V> VV;
  //typedef vector<VV> VVV;
  
  int main(){
  	ll n;
  	string s="";
  	cin >> n;
  	ll ind = 1;
  	while (n != 0) {
  		int a =abs((n % (ind*(-2)))/ind);
  		n -= a * (ind);
  		s = to_string(a) + s;
  		ind *= -2;
  	}
  	cout << s << endl;
  }
  
problem_description: Statement
  
  Given an integer N, find the base -2 representation of N.
  
  Here, S is the base -2 representation of N when the following are all
  satisfied:
  
    * S is a string consisting of `0` and `1`.
    * Unless S = `0`, the initial character of S is `1`.
    * Let S = S_k S_{k-1} ... S_0, then S_0 \times (-2)^0 + S_1 \times (-2)^1 + ... + S_k \times (-2)^k = N.
  
  It can be proved that, for any integer M, the base -2 representation of M is
  uniquely determined.
samples: [{"input": "-9", "output": "1011\n    \n\nAs (-2)^0 + (-2)^1 + (-2)^3 = 1 + (-2) + (-8) = -9, `1011` is the base -2\nrepresentation of -9.\n\n* * *"}, {"input": "123456789", "output": "11000101011001101110100010101\n    \n\n* * *"}, {"input": "0", "output": "0"}]