| Task: | Binääripuu |
| Sender: | Miska Kananen |
| Submission time: | 2019-01-17 16:08:45 +0200 |
| Language: | C++ |
| Status: | READY |
| Result: | 49 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 23 |
| #2 | ACCEPTED | 26 |
| #3 | WRONG ANSWER | 0 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.02 s | 1 | details |
| #2 | ACCEPTED | 0.01 s | 1 | details |
| #3 | ACCEPTED | 0.01 s | 1 | details |
| #4 | ACCEPTED | 0.01 s | 1 | details |
| #5 | ACCEPTED | 0.02 s | 1 | details |
| #6 | ACCEPTED | 0.01 s | 1 | details |
| #7 | ACCEPTED | 0.01 s | 1 | details |
| #8 | ACCEPTED | 0.01 s | 1 | details |
| #9 | ACCEPTED | 0.03 s | 1 | details |
| #10 | ACCEPTED | 0.03 s | 1 | details |
| #11 | ACCEPTED | 0.02 s | 1 | details |
| #12 | ACCEPTED | 0.01 s | 1 | details |
| #13 | ACCEPTED | 0.01 s | 1 | details |
| #14 | ACCEPTED | 0.02 s | 1 | details |
| #15 | ACCEPTED | 0.03 s | 1 | details |
| #16 | ACCEPTED | 0.01 s | 1 | details |
| #17 | ACCEPTED | 0.02 s | 1 | details |
| #18 | ACCEPTED | 0.02 s | 1 | details |
| #19 | ACCEPTED | 0.01 s | 1 | details |
| #20 | ACCEPTED | 0.01 s | 1 | details |
| #21 | ACCEPTED | 0.04 s | 1 | details |
| #22 | ACCEPTED | 0.02 s | 1 | details |
| #23 | ACCEPTED | 0.01 s | 1 | details |
| #24 | ACCEPTED | 0.01 s | 1 | details |
| #25 | ACCEPTED | 0.01 s | 1 | details |
| #26 | ACCEPTED | 0.02 s | 1 | details |
| #27 | ACCEPTED | 0.02 s | 1 | details |
| #28 | ACCEPTED | 0.03 s | 1 | details |
| #29 | ACCEPTED | 0.02 s | 1 | details |
| #30 | ACCEPTED | 0.01 s | 1 | details |
| #31 | ACCEPTED | 0.01 s | 1 | details |
| #32 | ACCEPTED | 0.01 s | 1 | details |
| #33 | ACCEPTED | 0.02 s | 1 | details |
| #34 | ACCEPTED | 0.02 s | 1 | details |
| #35 | ACCEPTED | 0.02 s | 1 | details |
| #36 | ACCEPTED | 0.01 s | 2 | details |
| #37 | ACCEPTED | 0.02 s | 2 | details |
| #38 | ACCEPTED | 0.02 s | 2 | details |
| #39 | ACCEPTED | 0.01 s | 2 | details |
| #40 | ACCEPTED | 0.02 s | 2 | details |
| #41 | ACCEPTED | 0.02 s | 2 | details |
| #42 | ACCEPTED | 0.03 s | 2 | details |
| #43 | ACCEPTED | 0.01 s | 2 | details |
| #44 | ACCEPTED | 0.02 s | 2 | details |
| #45 | ACCEPTED | 0.02 s | 2 | details |
| #46 | ACCEPTED | 0.03 s | 3 | details |
| #47 | ACCEPTED | 0.01 s | 3 | details |
| #48 | ACCEPTED | 0.01 s | 3 | details |
| #49 | ACCEPTED | 0.02 s | 3 | details |
| #50 | ACCEPTED | 0.03 s | 3 | details |
| #51 | ACCEPTED | 0.02 s | 3 | details |
| #52 | ACCEPTED | 0.02 s | 3 | details |
| #53 | ACCEPTED | 0.01 s | 3 | details |
| #54 | ACCEPTED | 0.01 s | 3 | details |
| #55 | WRONG ANSWER | 0.41 s | 3 | details |
| #56 | WRONG ANSWER | 0.42 s | 3 | details |
| #57 | WRONG ANSWER | 0.41 s | 3 | details |
| #58 | WRONG ANSWER | 0.42 s | 3 | details |
| #59 | WRONG ANSWER | 0.41 s | 3 | details |
| #60 | WRONG ANSWER | 0.41 s | 3 | details |
| #61 | ACCEPTED | 0.20 s | 3 | details |
| #62 | WRONG ANSWER | 0.41 s | 3 | details |
| #63 | ACCEPTED | 0.07 s | 3 | details |
| #64 | WRONG ANSWER | 0.42 s | 3 | details |
| #65 | ACCEPTED | 0.19 s | 3 | details |
| #66 | WRONG ANSWER | 0.30 s | 3 | details |
| #67 | ACCEPTED | 0.01 s | 3 | details |
| #68 | ACCEPTED | 0.01 s | 3 | details |
| #69 | ACCEPTED | 0.02 s | 3 | details |
| #70 | ACCEPTED | 0.01 s | 3 | details |
| #71 | ACCEPTED | 0.02 s | 3 | details |
| #72 | ACCEPTED | 0.02 s | 3 | details |
| #73 | ACCEPTED | 0.02 s | 3 | details |
| #74 | ACCEPTED | 0.02 s | 3 | details |
| #75 | ACCEPTED | 0.02 s | 3 | details |
| #76 | ACCEPTED | 0.01 s | 3 | details |
| #77 | ACCEPTED | 0.03 s | 3 | details |
Compiler report
input/code.cpp: In function 'int main()':
input/code.cpp:40:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(uint64_t i2 = 2; i2 <= ((1<<n)-1); i2*= 2){
~~~^~~~~~~~~~~~~Code
#include <bits/stdc++.h>
#include <stdint.h>
using namespace std;
uint64_t n,m;
const int64_t M = 1000000007;
unordered_set<uint64_t> s;
uint64_t p[200000];
uint64_t lapset(uint64_t a){
uint64_t ans=0;
while(a != 1){
a /= 2;
ans++;
}
uint64_t t= ((uint64_t)1<<((uint64_t)n-ans-1));
return t;
}
int main(){
cin >> n >> m;
uint64_t c1,c2;
c1 = lapset(2);
c2 = lapset(3);
// cout << (c*c*2)%M << "\n";
for(uint64_t i=0; i<m; i++){
cin >> p[i];
}
sort(p,p+m);
for(uint64_t i=0; i<m; i++){
bool ok=1;
for(uint64_t i2=p[i]; i2>0; i2/=2){
if(s.count(i2)){
ok = false;
}
}
if(ok){
bool d = 0;
for(uint64_t i2 = 2; i2 <= ((1<<n)-1); i2*= 2){
if((i2 <= p[i]) && ((i2+(i2/2)) > p[i])){
c1 -= lapset(p[i]);
d = 1;
break;
}
}
if(!d){
c2 -= lapset(p[i]);
}
s.insert(p[i]);
}
}
if (c1 < 0) c1 += M;
if (c2 < 0) c2 += M;
c1 %= M;
c2 %= M;
cout << (((c1*c2)%M)*2)%M << "\n";
}Test details
Test 1
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 4 3
10 5 13 |
| correct output |
|---|
| 12 |
| user output |
|---|
| 12 |
Test 2
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 2 0 |
| correct output |
|---|
| 2 |
| user output |
|---|
| 2 |
Test 3
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 2 1
2 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 4
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 2 1
3 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 5
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 2 2
2 3 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 6
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 6 0 |
| correct output |
|---|
| 512 |
| user output |
|---|
| 512 |
Test 7
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 6 1
29 |
| correct output |
|---|
| 448 |
| user output |
|---|
| 448 |
Test 8
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 6 1
63 |
| correct output |
|---|
| 480 |
| user output |
|---|
| 480 |
Test 9
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 6 10
50 63 56 5 ... |
| correct output |
|---|
| 132 |
| user output |
|---|
| 132 |
Test 10
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 6 10
25 57 62 42 ... |
| correct output |
|---|
| 162 |
| user output |
|---|
| 162 |
Test 11
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 6 10
14 26 34 42 ... |
| correct output |
|---|
| 126 |
| user output |
|---|
| 126 |
Test 12
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 6 10
21 60 23 59 ... |
| correct output |
|---|
| 128 |
| user output |
|---|
| 128 |
Test 13
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 6 10
8 30 32 16 ... |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 14
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 6 20
46 39 55 24 ... |
| correct output |
|---|
| 48 |
| user output |
|---|
| 48 |
Test 15
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 6 25
36 23 27 33 ... |
| correct output |
|---|
| 4 |
| user output |
|---|
| 4 |
Test 16
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 6 62
42 11 4 61 ... |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 17
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 6 32
62 38 57 35 ... |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 18
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 6 21
38 51 47 35 ... |
| correct output |
|---|
| 60 |
| user output |
|---|
| 60 |
Test 19
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 6 31
59 15 3 26 ... |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 20
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 6 14
13 53 55 26 ... |
| correct output |
|---|
| 256 |
| user output |
|---|
| 256 |
Test 21
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 5 10
5 17 21 7 ... |
| correct output |
|---|
| 6 |
| user output |
|---|
| 6 |
Test 22
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 6 5
38 18 31 44 ... |
| correct output |
|---|
| 312 |
| user output |
|---|
| 312 |
Test 23
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 3 0 |
| correct output |
|---|
| 8 |
| user output |
|---|
| 8 |
Test 24
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 3 1
2 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 25
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 3 1
3 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 26
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 3 2
4 6 |
| correct output |
|---|
| 2 |
| user output |
|---|
| 2 |
Test 27
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 3 2
4 7 |
| correct output |
|---|
| 2 |
| user output |
|---|
| 2 |
Test 28
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 3 2
5 6 |
| correct output |
|---|
| 2 |
| user output |
|---|
| 2 |
Test 29
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 3 2
5 7 |
| correct output |
|---|
| 2 |
| user output |
|---|
| 2 |
Test 30
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 3 2
3 6 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 31
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 3 3
4 5 6 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 32
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 3 3
4 6 7 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 33
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 3 4
4 5 6 7 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 34
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 5 0 |
| correct output |
|---|
| 128 |
| user output |
|---|
| 128 |
Test 35
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 5 1
14 |
| correct output |
|---|
| 96 |
| user output |
|---|
| 96 |
Test 36
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 2 0 |
| correct output |
|---|
| 2 |
| user output |
|---|
| 2 |
Test 37
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 3 0 |
| correct output |
|---|
| 8 |
| user output |
|---|
| 8 |
Test 38
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 4 0 |
| correct output |
|---|
| 32 |
| user output |
|---|
| 32 |
Test 39
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 23 0 |
| correct output |
|---|
| 92960636 |
| user output |
|---|
| 92960636 |
Test 40
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 36 0 |
| correct output |
|---|
| 635008130 |
| user output |
|---|
| 635008130 |
Test 41
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 42 0 |
| correct output |
|---|
| 993282280 |
| user output |
|---|
| 993282280 |
Test 42
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 57 0 |
| correct output |
|---|
| 608377687 |
| user output |
|---|
| 608377687 |
Test 43
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 58 0 |
| correct output |
|---|
| 433510734 |
| user output |
|---|
| 433510734 |
Test 44
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 59 0 |
| correct output |
|---|
| 734042929 |
| user output |
|---|
| 734042929 |
Test 45
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 60 0 |
| correct output |
|---|
| 936171702 |
| user output |
|---|
| 936171702 |
Test 46
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 2 0 |
| correct output |
|---|
| 2 |
| user output |
|---|
| 2 |
Test 47
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 2 1
2 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 48
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 2 1
3 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 49
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 2 2
2 3 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 50
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 59 0 |
| correct output |
|---|
| 734042929 |
| user output |
|---|
| 734042929 |
Test 51
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 60 0 |
| correct output |
|---|
| 936171702 |
| user output |
|---|
| 936171702 |
Test 52
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 60 1
2 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 53
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 60 1
576460752303423487 |
| correct output |
|---|
| 399775198 |
| user output |
|---|
| 399775198 |
Test 54
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 60 1
1152921504606846975 |
| correct output |
|---|
| 667973450 |
| user output |
|---|
| 667973450 |
Test 55
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| 60 100000
793144025126277478 493960657696318193 320344157019848454 997683950258055349 ... |
| correct output |
|---|
| 12813436 |
| user output |
|---|
| 334695179 |
Test 56
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| 60 100000
986789393060040220 494066507202684187 290830182157570659 210871095549437400 ... |
| correct output |
|---|
| 95910570 |
| user output |
|---|
| 471160165 |
Test 57
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| 60 100000
562299894758506682 731132428235172865 481500339045425690 208947005967360560 ... |
| correct output |
|---|
| 331624281 |
| user output |
|---|
| 107863651 |
Test 58
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| 60 100000
257846911019866261 803021202233459674 658685893766403373 874237705485665885 ... |
| correct output |
|---|
| 880725152 |
| user output |
|---|
| 545227829 |
Test 59
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| 60 100000
681388061028265547 990382999862855868 290694941402209648 491574111397234946 ... |
| correct output |
|---|
| 768320742 |
| user output |
|---|
| 977331888 |
Test 60
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| 60 100000
816968727394104576 879176301780517486 1075817811951859004 632046213104404023 ... |
| correct output |
|---|
| 111155168 |
| user output |
|---|
| 111159435 |
Test 61
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 60 100000
406817930303406656 101704482575856800 406817930303412346 813635860606874021 ... |
| correct output |
|---|
| 295651662 |
| user output |
|---|
| 295651662 |
Test 62
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| 59 100000
234885934259928845 244746379456935555 40048493361902167 530369614866009610 ... |
| correct output |
|---|
| 78892926 |
| user output |
|---|
| 529312633 |
Test 63
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 16 65534
26355 15205 3420 22822 ... |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 64
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| 60 99999
1030879879260090869 925369330408563145 403438777989811739 321883235203598800 ... |
| correct output |
|---|
| 596899803 |
| user output |
|---|
| 889531623 |
Test 65
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 60 100000
418885324976523921 418885324976523063 837770649953084829 104721331244134167 ... |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 66
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| 43 100000
5497882741157 4163319796881 3705445016042 8647080351851 ... |
| correct output |
|---|
| 317037701 |
| user output |
|---|
| 554278942 |
Test 67
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 3 0 |
| correct output |
|---|
| 8 |
| user output |
|---|
| 8 |
Test 68
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 3 1
2 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 69
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 3 1
3 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 70
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 3 2
4 6 |
| correct output |
|---|
| 2 |
| user output |
|---|
| 2 |
Test 71
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 3 2
4 7 |
| correct output |
|---|
| 2 |
| user output |
|---|
| 2 |
Test 72
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 3 2
5 6 |
| correct output |
|---|
| 2 |
| user output |
|---|
| 2 |
Test 73
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 3 2
5 7 |
| correct output |
|---|
| 2 |
| user output |
|---|
| 2 |
Test 74
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 3 2
3 6 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 75
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 3 3
4 5 6 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 76
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 3 3
4 6 7 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 77
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 3 4
4 5 6 7 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
