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 1000000007 using 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 |