Xor Sum

AtCoder
IDarc066_b
Time2000ms
Memory256MB
Difficulty
You are given a positive integer $N$. Find the number of the pairs of integers $u$ and $v$ $(0≦u,v≦N)$ such that there exist two non-negative integers $a$ and $b$ satisfying $a$ $xor$ $b=u$ and $a+b=v$. Here, $xor$ denotes the bitwise exclusive OR. Since it can be extremely large, compute the answer modulo $10^9+7$. ## Constraints * $1≦N≦10^{18}$ ## Input The input is given from Standard Input in the following format: $N$ [samples]
Samples
Input #1
3
Output #1
5

The five possible pairs of $u$ and $v$ are:

*   $u=0,v=0$ (Let $a=0,b=0$, then $0$ $xor$ $0=0$, $0+0=0$.)
    
*   $u=0,v=2$ (Let $a=1,b=1$, then $1$ $xor$ $1=0$, $1+1=2$.)
    
*   $u=1,v=1$ (Let $a=1,b=0$, then $1$ $xor$ $0=1$, $1+0=1$.)
    
*   $u=2,v=2$ (Let $a=2,b=0$, then $2$ $xor$ $0=2$, $2+0=2$.)
    
*   $u=3,v=3$ (Let $a=3,b=0$, then $3$ $xor$ $0=3$, $3+0=3$.)
Input #2
1422
Output #2
52277
Input #3
1000000000000000000
Output #3
787014179
API Response (JSON)
{
  "problem": {
    "name": "Xor Sum",
    "description": {
      "content": "You are given a positive integer $N$. Find the number of the pairs of integers $u$ and $v$ $(0≦u,v≦N)$ such that there exist two non-negative integers $a$ and $b$ satisfying $a$ $xor$ $b=u$ and $a+b=v",
      "description_type": "Markdown"
    },
    "platform": "AtCoder",
    "limit": {
      "time_limit": 2000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "arc066_b"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "You are given a positive integer $N$. Find the number of the pairs of integers $u$ and $v$ $(0≦u,v≦N)$ such that there exist two non-negative integers $a$ and $b$ satisfying $a$ $xor$ $b=u$ and $a+b=v...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments