| Task: | Binary tree |
| Sender: | toonewbie |
| Submission time: | 2019-01-18 11:03:58 +0200 |
| Language: | C++ |
| Status: | READY |
| Result: | 49 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 23 |
| #2 | ACCEPTED | 26 |
| #3 | TIME LIMIT EXCEEDED | 0 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.01 s | 1 | details |
| #2 | ACCEPTED | 0.02 s | 1 | details |
| #3 | ACCEPTED | 0.03 s | 1 | details |
| #4 | ACCEPTED | 0.02 s | 1 | details |
| #5 | ACCEPTED | 0.02 s | 1 | details |
| #6 | ACCEPTED | 0.03 s | 1 | details |
| #7 | ACCEPTED | 0.03 s | 1 | details |
| #8 | ACCEPTED | 0.02 s | 1 | details |
| #9 | ACCEPTED | 0.01 s | 1 | details |
| #10 | ACCEPTED | 0.02 s | 1 | details |
| #11 | ACCEPTED | 0.02 s | 1 | details |
| #12 | ACCEPTED | 0.02 s | 1 | details |
| #13 | ACCEPTED | 0.03 s | 1 | details |
| #14 | ACCEPTED | 0.02 s | 1 | details |
| #15 | ACCEPTED | 0.02 s | 1 | details |
| #16 | ACCEPTED | 0.01 s | 1 | details |
| #17 | ACCEPTED | 0.03 s | 1 | details |
| #18 | ACCEPTED | 0.03 s | 1 | details |
| #19 | ACCEPTED | 0.02 s | 1 | details |
| #20 | ACCEPTED | 0.02 s | 1 | details |
| #21 | ACCEPTED | 0.02 s | 1 | details |
| #22 | ACCEPTED | 0.02 s | 1 | details |
| #23 | ACCEPTED | 0.01 s | 1 | details |
| #24 | ACCEPTED | 0.02 s | 1 | details |
| #25 | ACCEPTED | 0.02 s | 1 | details |
| #26 | ACCEPTED | 0.02 s | 1 | details |
| #27 | ACCEPTED | 0.03 s | 1 | details |
| #28 | ACCEPTED | 0.02 s | 1 | details |
| #29 | ACCEPTED | 0.02 s | 1 | details |
| #30 | ACCEPTED | 0.02 s | 1 | details |
| #31 | ACCEPTED | 0.01 s | 1 | details |
| #32 | ACCEPTED | 0.02 s | 1 | details |
| #33 | ACCEPTED | 0.01 s | 1 | details |
| #34 | ACCEPTED | 0.02 s | 1 | details |
| #35 | ACCEPTED | 0.02 s | 1 | details |
| #36 | ACCEPTED | 0.02 s | 2 | details |
| #37 | ACCEPTED | 0.02 s | 2 | details |
| #38 | ACCEPTED | 0.02 s | 2 | details |
| #39 | ACCEPTED | 0.02 s | 2 | details |
| #40 | ACCEPTED | 0.03 s | 2 | details |
| #41 | ACCEPTED | 0.03 s | 2 | details |
| #42 | ACCEPTED | 0.02 s | 2 | details |
| #43 | ACCEPTED | 0.01 s | 2 | details |
| #44 | ACCEPTED | 0.03 s | 2 | details |
| #45 | ACCEPTED | 0.02 s | 2 | details |
| #46 | ACCEPTED | 0.02 s | 3 | details |
| #47 | ACCEPTED | 0.02 s | 3 | details |
| #48 | ACCEPTED | 0.02 s | 3 | details |
| #49 | ACCEPTED | 0.02 s | 3 | details |
| #50 | ACCEPTED | 0.02 s | 3 | details |
| #51 | ACCEPTED | 0.02 s | 3 | details |
| #52 | ACCEPTED | 0.02 s | 3 | details |
| #53 | ACCEPTED | 0.02 s | 3 | details |
| #54 | ACCEPTED | 0.03 s | 3 | details |
| #55 | TIME LIMIT EXCEEDED | -- | 3 | details |
| #56 | TIME LIMIT EXCEEDED | -- | 3 | details |
| #57 | TIME LIMIT EXCEEDED | -- | 3 | details |
| #58 | TIME LIMIT EXCEEDED | -- | 3 | details |
| #59 | TIME LIMIT EXCEEDED | -- | 3 | details |
| #60 | TIME LIMIT EXCEEDED | -- | 3 | details |
| #61 | ACCEPTED | 0.34 s | 3 | details |
| #62 | TIME LIMIT EXCEEDED | -- | 3 | details |
| #63 | ACCEPTED | 0.09 s | 3 | details |
| #64 | TIME LIMIT EXCEEDED | -- | 3 | details |
| #65 | ACCEPTED | 0.22 s | 3 | details |
| #66 | ACCEPTED | 0.81 s | 3 | details |
| #67 | ACCEPTED | 0.02 s | 3 | details |
| #68 | ACCEPTED | 0.04 s | 3 | details |
| #69 | ACCEPTED | 0.02 s | 3 | details |
| #70 | ACCEPTED | 0.02 s | 3 | details |
| #71 | ACCEPTED | 0.03 s | 3 | details |
| #72 | ACCEPTED | 0.01 s | 3 | details |
| #73 | ACCEPTED | 0.01 s | 3 | details |
| #74 | ACCEPTED | 0.02 s | 3 | details |
| #75 | ACCEPTED | 0.02 s | 3 | details |
| #76 | ACCEPTED | 0.02 s | 3 | details |
| #77 | ACCEPTED | 0.02 s | 3 | details |
Compiler report
input/code.cpp: In function 'int is_prime(int)':
input/code.cpp:50:25: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
if (n <= 1 || n > 3 && (n % 2 == 0 || n % 3 == 0))
~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~Code
/****Author: Barish Namazov****/
#include <bits/stdc++.h>
using namespace std;
/***TEMPLATE***/
#define all(v) (v).begin(),(v).end()
#define rall(v) (v).rbegin(),(v).rend()
#define F first
#define S second
#define pb push_back
#define endl '\n'
const int max4 = 10004;
const int maxx = 100005;
const int max6 = 1000006;
const int lg5 = 17;
const int INF = 2 * 1000000007;
const long long INFLL = 4LL * 1000000000 * 1000000000;
/***************/
int powmod (int a, int b, int mod) {
int res = 1; a %= mod;
for (; b; b >>= 1) {
if (b & 1) {
res = 1LL * res * a % mod;
}
a = 1LL * a * a % mod;
}
return res;
}
int gcd (int a, int b) {
while (b > 0) {
int t = a % b;
a = b, b = t;
}
return a;
}
int lcm (int a, int b) {
return (a / gcd (a, b)) * b;
}
int is_prime (int n) {
if (n <= 1 || n > 3 && (n % 2 == 0 || n % 3 == 0))
return 0;
for (int i = 5, t = 2; i * i <= n; i += t, t = 6 - t)
if (n % i == 0)
return 0;
return 1;
}
/******Don't forget to use long long when needed!!******/
const int MOD = 1e9 + 7;
string conv(long long x) {
string s = "";
while (x > 0) {
s += char(x % 2 + 48);
x /= 2;
}
reverse(all(s));
return s;
}
bool cmp(string a, string b) {
return a.size() < b.size();
}
string arr[maxx];
int pw[100];
int main() {
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
ios_base :: sync_with_stdio(0);
cin.tie(0), cout.tie(0);
pw[0] = 1;
for (int i = 1; i < 100; i++) {
pw[i] = 2LL * pw[i - 1] % MOD;
}
int n, m;
cin >> n >> m;
unordered_map <string, int> mp;
for (int i = 1; i <= m; i++) {
long long x; cin >> x;
arr[i] = conv(x);
}
sort(arr + 1, arr + m + 1, cmp);
vector <string> need;
string tmp;
for (int i = 1; i <= m; i++) {
tmp = ""; int ok = 1;
for (char j : arr[i]) {
tmp += j;
if (mp.count(tmp)) {
ok = 0; break;
}
}
if (ok == 1) {
need.pb(arr[i]);
mp[arr[i]] = 1;
}
}
int lf = pw[n - 2], rg = lf;
for (string s : need) {
int bad = pw[n - s.size()];
if (s[1] == '0') {
lf = (lf - bad + MOD) % MOD;
} else {
rg = (rg - bad + MOD) % MOD;
}
}
int res = 1LL * lf * rg % MOD; res = 2LL * res % MOD;
cout << res << endl;
return 0;
}
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: TIME LIMIT EXCEEDED
| input |
|---|
| 60 100000
793144025126277478 493960657696318193 320344157019848454 997683950258055349 ... |
| correct output |
|---|
| 12813436 |
| user output |
|---|
| (empty) |
Test 56
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 60 100000
986789393060040220 494066507202684187 290830182157570659 210871095549437400 ... |
| correct output |
|---|
| 95910570 |
| user output |
|---|
| (empty) |
Test 57
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 60 100000
562299894758506682 731132428235172865 481500339045425690 208947005967360560 ... |
| correct output |
|---|
| 331624281 |
| user output |
|---|
| (empty) |
Test 58
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 60 100000
257846911019866261 803021202233459674 658685893766403373 874237705485665885 ... |
| correct output |
|---|
| 880725152 |
| user output |
|---|
| (empty) |
Test 59
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 60 100000
681388061028265547 990382999862855868 290694941402209648 491574111397234946 ... |
| correct output |
|---|
| 768320742 |
| user output |
|---|
| (empty) |
Test 60
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 60 100000
816968727394104576 879176301780517486 1075817811951859004 632046213104404023 ... |
| correct output |
|---|
| 111155168 |
| user output |
|---|
| (empty) |
Test 61
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 60 100000
406817930303406656 101704482575856800 406817930303412346 813635860606874021 ... |
| correct output |
|---|
| 295651662 |
| user output |
|---|
| 295651662 |
Test 62
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 59 100000
234885934259928845 244746379456935555 40048493361902167 530369614866009610 ... |
| correct output |
|---|
| 78892926 |
| user output |
|---|
| (empty) |
Test 63
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 16 65534
26355 15205 3420 22822 ... |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 64
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 60 99999
1030879879260090869 925369330408563145 403438777989811739 321883235203598800 ... |
| correct output |
|---|
| 596899803 |
| user output |
|---|
| (empty) |
Test 65
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 60 100000
418885324976523921 418885324976523063 837770649953084829 104721331244134167 ... |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 66
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 43 100000
5497882741157 4163319796881 3705445016042 8647080351851 ... |
| correct output |
|---|
| 317037701 |
| user output |
|---|
| 317037701 |
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 |
