Submission #7467018


Source Code Expand

Copy
#include <bits/stdc++.h>
using namespace std;
using int64 = long long;
#define int int64
#define debug(x) cerr<<#x<<":"<<(x)<<endl;

int f(int n){
  if (n<=0) return 0;
  int res = 0;

  for(int digit=1;digit<50;++digit){
    int base = (1LL<<digit);
    int cnt = (n/base) * (base/2);
    cnt += max(0LL, (n%base) - (base/2) + 1);

    if (cnt%2 == 1) {
      res += (1LL << (digit-1));
    }
    debug(digit);
    debug(cnt);
    debug(res);
  }
  
  return res;
}

signed main() {
  int a,b;cin>>a>>b;
  int ans = f(b)^f(a-1);
  cout<<ans<<endl;
  
  return 0;
}

Submission Info

Submission Time
Task D - XOR World
User task4233
Language C++14 (GCC 5.4.1)
Score 400
Code Size 599 Byte
Status
Exec Time 2 ms
Memory 256 KB

Judge Result

Set Name All Sample
Score / Max Score 400 / 400 0 / 0
Status
× 26
× 3
Set Name Test Cases
All sample_01, sample_02, sample_03, testcase_01, testcase_02, testcase_03, testcase_04, testcase_05, testcase_06, testcase_07, testcase_08, testcase_09, testcase_10, testcase_11, testcase_12, testcase_13, testcase_14, testcase_15, testcase_16, testcase_17, testcase_18, testcase_19, testcase_20, testcase_21, testcase_22, testcase_23
Sample sample_01, sample_02, sample_03
Case Name Status Exec Time Memory
sample_01 2 ms 256 KB
sample_02 2 ms 256 KB
sample_03 2 ms 256 KB
testcase_01 2 ms 256 KB
testcase_02 2 ms 256 KB
testcase_03 2 ms 256 KB
testcase_04 2 ms 256 KB
testcase_05 2 ms 256 KB
testcase_06 2 ms 256 KB
testcase_07 2 ms 256 KB
testcase_08 2 ms 256 KB
testcase_09 2 ms 256 KB
testcase_10 2 ms 256 KB
testcase_11 2 ms 256 KB
testcase_12 2 ms 256 KB
testcase_13 2 ms 256 KB
testcase_14 2 ms 256 KB
testcase_15 2 ms 256 KB
testcase_16 2 ms 256 KB
testcase_17 2 ms 256 KB
testcase_18 2 ms 256 KB
testcase_19 1 ms 256 KB
testcase_20 1 ms 256 KB
testcase_21 2 ms 256 KB
testcase_22 1 ms 256 KB
testcase_23 2 ms 256 KB