CSES - KILO 2018 3/5 - Results
Submission details
Task:Tree Traversals
Sender:ollpu
Submission time:2018-09-20 17:51:06 +0300
Language:C++
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.02 sdetails
#2ACCEPTED0.02 sdetails
#3ACCEPTED0.02 sdetails
#4ACCEPTED0.08 sdetails
#5ACCEPTED0.09 sdetails
#6ACCEPTED0.10 sdetails
#7ACCEPTED0.14 sdetails
#8ACCEPTED0.09 sdetails
#9ACCEPTED0.15 sdetails
#10ACCEPTED0.26 sdetails
#11ACCEPTED0.26 sdetails
#12ACCEPTED0.26 sdetails
#13ACCEPTED0.26 sdetails
#14ACCEPTED0.25 sdetails
#15ACCEPTED0.27 sdetails
#16ACCEPTED0.26 sdetails

Code

#pragma GCC target ("arch=haswell")
#include <bits/stdc++.h>
using namespace std;
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int k, q;
  cin >> k >> q;
  long s = 0;
  for (int qi = 0; qi < q; ++qi) {
    long x;
    cin >> x;
    int l = __builtin_ctzl(x);
    long v = (1l<<(k-l-1)) + (x>>(l+1));
    s += v;
    s %= long(1e9+7);
  }
  cout << s << endl;
}

Test details

Test 1

Verdict: ACCEPTED

input
3 7
1 2 3 4 5 6 7

correct output
28

user output
28

Test 2

Verdict: ACCEPTED

input
6 256
28 55 1 48 52 31 51 4 37 10 56...

correct output
8822

user output
8822

Test 3

Verdict: ACCEPTED

input
4 256
8 14 15 11 5 6 5 8 7 11 14 4 1...

correct output
2096

user output
2096

Test 4

Verdict: ACCEPTED

input
1 1000000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
1000000

user output
1000000

Test 5

Verdict: ACCEPTED

input
41 1000000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
79418660

user output
79418660

Test 6

Verdict: ACCEPTED

input
5 1000000
29 31 27 1 16 31 2 29 31 6 31 ...

correct output
16006290

user output
16006290

Test 7

Verdict: ACCEPTED

input
18 1000000
261603 191019 183062 125635 19...

correct output
89165770

user output
89165770

Test 8

Verdict: ACCEPTED

input
55 1000000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
195316333

user output
195316333

Test 9

Verdict: ACCEPTED

input
26 1000000
1223252 13025628 23067963 3612...

correct output
599130564

user output
599130564

Test 10

Verdict: ACCEPTED

input
60 1000000
657592084269048566 42762072789...

correct output
587087255

user output
587087255

Test 11

Verdict: ACCEPTED

input
60 1000000
859446971189816813 20280193767...

correct output
757029632

user output
757029632

Test 12

Verdict: ACCEPTED

input
60 1000000
1097888207762557868 9748981948...

correct output
248893082

user output
248893082

Test 13

Verdict: ACCEPTED

input
60 1000000
863731001976201423 34268342906...

correct output
466255573

user output
466255573

Test 14

Verdict: ACCEPTED

input
60 1000000
36107662162216830 647995524998...

correct output
129209858

user output
129209858

Test 15

Verdict: ACCEPTED

input
60 1000000
887496243842327968 52624068418...

correct output
244549316

user output
244549316

Test 16

Verdict: ACCEPTED

input
60 1000000
1134575123699572988 4087840238...

correct output
503768598

user output
503768598