Submission #1112649


Source Code Expand

#include<bits/stdc++.h>
#define FOR(i,a,b) for(int i = (a);i<(b);i++)
#define ROF(i,a,b) for(int i = (a);i>(b);i--)
#define MST(a,x) memset(a,x,sizeof(a))
#define ll long long
#define PB push_back
#define PH push
#define MP make_pair
#define FT first
#define SD second
#define N 70
#define M 51
#define INF 1000000007
#define MOD 1000000007
#define MOD2 1000000009
#define eps 1e-14
using namespace std;
inline int Max(int a,int b)
{
    return (((b-a)>>(32-1))&(a^b))^b;
}
inline int Min(int a,int b)
{
    return (((b-a)>>(32-1))&(a^b))^a;
}

ll dp[N][2][2];
int bit[N];
int main()
{
    ll n;
    while(cin>>n)
    {
        int id = 0;
        while(n)
        {
            bit[++id] = n%2;
            n>>=1;
        }
        MST(dp,0);
        dp[0][0][0] = 1;
        FOR(i,1,id+1)
        {
            if(bit[i] == 0)
            {
                dp[i][0][0] = dp[i-1][0][0];
                dp[i][0][1] = (dp[i-1][0][0]+2*dp[i-1][0][1]+dp[i-1][1][0]+dp[i-1][1][1])%MOD;
                dp[i][1][0] = (dp[i-1][0][0]+dp[i-1][1][0])%MOD;
                dp[i][1][1] = (dp[i-1][0][1]+dp[i-1][1][0]+2*dp[i-1][1][1])%MOD;
            }
            else
            {
                dp[i][0][0] = (2*dp[i-1][0][0]+dp[i-1][0][1]+dp[i-1][1][0])%MOD;
                dp[i][0][1] = (dp[i-1][0][1]+dp[i-1][1][1])%MOD;
                dp[i][1][0] = (dp[i-1][0][0]+dp[i-1][0][1]+2*dp[i-1][1][0]+dp[i-1][1][1])%MOD;
                dp[i][1][1] = dp[i-1][1][1];
            }
        }
        cout<<dp[id][0][0]<<endl;
    }
    return 0;
}

Submission Info

Submission Time
Task D - Xor Sum
User shllhs
Language C++14 (GCC 5.4.1)
Score 600
Code Size 1602 Byte
Status AC
Exec Time 1 ms
Memory 256 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 600 / 600
Status
AC × 3
AC × 19
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_max_01.txt, subtask_1_rand_01.txt, subtask_1_rand_02.txt, subtask_1_rand_03.txt, subtask_1_rand_04.txt, subtask_1_rand_05.txt, subtask_1_small_rand_01.txt, subtask_1_small_rand_02.txt, subtask_1_small_rand_03.txt, subtask_1_small_rand_04.txt, subtask_1_small_rand_05.txt, subtask_1_specific_01.txt, subtask_1_specific_02.txt, subtask_1_specific_03.txt, subtask_1_specific_04.txt, subtask_1_specific_05.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB
sample_03.txt AC 1 ms 256 KB
subtask_1_max_01.txt AC 1 ms 256 KB
subtask_1_rand_01.txt AC 1 ms 256 KB
subtask_1_rand_02.txt AC 1 ms 256 KB
subtask_1_rand_03.txt AC 1 ms 256 KB
subtask_1_rand_04.txt AC 1 ms 256 KB
subtask_1_rand_05.txt AC 1 ms 256 KB
subtask_1_small_rand_01.txt AC 1 ms 256 KB
subtask_1_small_rand_02.txt AC 1 ms 256 KB
subtask_1_small_rand_03.txt AC 1 ms 256 KB
subtask_1_small_rand_04.txt AC 1 ms 256 KB
subtask_1_small_rand_05.txt AC 1 ms 256 KB
subtask_1_specific_01.txt AC 1 ms 256 KB
subtask_1_specific_02.txt AC 1 ms 256 KB
subtask_1_specific_03.txt AC 1 ms 256 KB
subtask_1_specific_04.txt AC 1 ms 256 KB
subtask_1_specific_05.txt AC 1 ms 256 KB