Task: | Sum |
Sender: | muradeyn |
Submission time: | 2019-01-20 11:31:30 +0200 |
Language: | C++ |
Status: | READY |
Result: | 0 |
group | verdict | score |
---|---|---|
#1 | WRONG ANSWER | 0 |
test | verdict | time | |
---|---|---|---|
#1 | WRONG ANSWER | 0.01 s | details |
#2 | WRONG ANSWER | 0.02 s | details |
#3 | WRONG ANSWER | 0.02 s | details |
#4 | WRONG ANSWER | 0.01 s | details |
#5 | WRONG ANSWER | 0.02 s | details |
#6 | WRONG ANSWER | 0.01 s | details |
#7 | WRONG ANSWER | 0.02 s | details |
#8 | WRONG ANSWER | 0.02 s | details |
#9 | WRONG ANSWER | 0.03 s | details |
#10 | WRONG ANSWER | 0.02 s | details |
#11 | WRONG ANSWER | 0.02 s | details |
#12 | WRONG ANSWER | 0.01 s | details |
#13 | WRONG ANSWER | 0.01 s | details |
#14 | WRONG ANSWER | 0.02 s | details |
#15 | WRONG ANSWER | 0.01 s | details |
#16 | WRONG ANSWER | 0.02 s | details |
#17 | WRONG ANSWER | 0.01 s | details |
#18 | WRONG ANSWER | 0.02 s | details |
#19 | WRONG ANSWER | 0.03 s | details |
#20 | WRONG ANSWER | 0.02 s | details |
#21 | WRONG ANSWER | 0.01 s | details |
#22 | WRONG ANSWER | 0.01 s | details |
#23 | WRONG ANSWER | 0.02 s | details |
#24 | WRONG ANSWER | 0.02 s | details |
#25 | WRONG ANSWER | 0.02 s | details |
#26 | WRONG ANSWER | 0.01 s | details |
#27 | WRONG ANSWER | 0.01 s | details |
#28 | WRONG ANSWER | 0.02 s | details |
Code
/* Murad Eynizade */#include <bits/stdc++.h>#define intt long long#define FAST_READ ios_base::sync_with_stdio(0);cin.tie(0);#define SIZE 100001#define INF INT_MAX#define F first#define S second#define in(a) scanf("%d",&a);#define outn(a) printf("%d\n",&a);#define outs(a) printf("%d ",&a);#define MOD 1000000007using namespace std;intt n , m , x , y;vector< pair<intt,intt> >v[4];intt ans[4];map<intt,intt>mp;intt powmod(intt a,intt b) {if (b == 0)return 1LL % MOD;if (b == 1)return a % MOD;intt help = powmod(a , b / 2);if (b % 2) return help * help % MOD * a % MOD;return help * help % MOD;}int main(){FAST_READ;cin>>n>>m;//cout<<2LL * powmod(powmod(2 , n - 2) , 2) % MOD<<endl;bool en = false;while (m--) {cin>>x;y = x / 2;if (y == 1)en = true;while (y > 3) y /= 2;v[y].push_back({x / 2, x});}if (en) {cout<<0<<endl;return 0;}sort(v[2].begin(),v[2].end());sort(v[3].begin(),v[3].end());ans[2] = ans[3] = powmod(2 , n - 2);for (auto i : v[2]) {bool f = false;x = i.first;while (x > 3) {if (mp[x]) {f = true;break;}x /= 2;}if (f)continue;mp[x] = mp[i.second] = 1;ans[2] = (ans[2] - powmod(2 , n - (int)log2(i.second) - 1) + MOD) % MOD;}/*for (auto i : v[3]) {bool f = false;x = i.first;while (x > 3) {if (mp[x]) {f = true;break;}x /= 2;}if (f)continue;mp[x] = mp[i.second] = 1;ans[3] = (ans[3] - powmod(2 , n - (int)log2(i.second) - 1) + MOD) % MOD;}*/cout<<ans[2] * ans[3] % MOD * 2LL % MOD<<endl;return 0;}
Test details
Test 1
Verdict: WRONG ANSWER
input |
---|
1 |
correct output |
---|
0 |
user output |
---|
8 |
Test 2
Verdict: WRONG ANSWER
input |
---|
2 |
correct output |
---|
0 |
user output |
---|
2 |
Test 3
Verdict: WRONG ANSWER
input |
---|
3 |
correct output |
---|
0 |
user output |
---|
8 |
Test 4
Verdict: WRONG ANSWER
input |
---|
4 |
correct output |
---|
0 |
user output |
---|
32 |
Test 5
Verdict: WRONG ANSWER
input |
---|
5 |
correct output |
---|
0 |
user output |
---|
128 |
Test 6
Verdict: WRONG ANSWER
input |
---|
6 |
correct output |
---|
1 |
user output |
---|
512 |
Test 7
Verdict: WRONG ANSWER
input |
---|
7 |
correct output |
---|
1 |
user output |
---|
2048 |
Test 8
Verdict: WRONG ANSWER
input |
---|
8 |
correct output |
---|
2 |
user output |
---|
8192 |
Test 9
Verdict: WRONG ANSWER
input |
---|
9 |
correct output |
---|
3 |
user output |
---|
32768 |
Test 10
Verdict: WRONG ANSWER
input |
---|
10 |
correct output |
---|
4 |
user output |
---|
131072 |
Test 11
Verdict: WRONG ANSWER
input |
---|
20 |
correct output |
---|
24 |
user output |
---|
438952513 |
Test 12
Verdict: WRONG ANSWER
input |
---|
30 |
correct output |
---|
61 |
user output |
---|
67049563 |
Test 13
Verdict: WRONG ANSWER
input |
---|
40 |
correct output |
---|
114 |
user output |
---|
562080146 |
Test 14
Verdict: WRONG ANSWER
input |
---|
50 |
correct output |
---|
184 |
user output |
---|
747046415 |
Test 15
Verdict: WRONG ANSWER
input |
---|
60 |
correct output |
---|
271 |
user output |
---|
936171702 |
Test 16
Verdict: WRONG ANSWER
input |
---|
70 |
correct output |
---|
374 |
user output |
---|
171724823 |
Test 17
Verdict: WRONG ANSWER
input |
---|
80 |
correct output |
---|
494 |
user output |
---|
526741586 |
Test 18
Verdict: WRONG ANSWER
input |
---|
90 |
correct output |
---|
631 |
user output |
---|
581415240 |
Test 19
Verdict: WRONG ANSWER
input |
---|
100 |
correct output |
---|
784 |
user output |
---|
62430634 |
Test 20
Verdict: WRONG ANSWER
input |
---|
200 |
correct output |
---|
3234 |
user output |
---|
274870944 |
Test 21
Verdict: WRONG ANSWER
input |
---|
300 |
correct output |
---|
7351 |
user output |
---|
455807409 |
Test 22
Verdict: WRONG ANSWER
input |
---|
400 |
correct output |
---|
13134 |
user output |
---|
612583114 |
Test 23
Verdict: WRONG ANSWER
input |
---|
500 |
correct output |
---|
20584 |
user output |
---|
336052903 |
Test 24
Verdict: WRONG ANSWER
input |
---|
600 |
correct output |
---|
29701 |
user output |
---|
159764261 |
Test 25
Verdict: WRONG ANSWER
input |
---|
700 |
correct output |
---|
40484 |
user output |
---|
279617488 |
Test 26
Verdict: WRONG ANSWER
input |
---|
800 |
correct output |
---|
52934 |
user output |
---|
449044111 |
Test 27
Verdict: WRONG ANSWER
input |
---|
900 |
correct output |
---|
67051 |
user output |
---|
779660930 |
Test 28
Verdict: WRONG ANSWER
input |
---|
1000 |
correct output |
---|
82834 |
user output |
---|
593652318 |