| Task: | Pyramidi |
| Sender: | kluopaja |
| Submission time: | 2020-11-28 00:26:43 +0200 |
| Language: | C++ (C++17) |
| Status: | READY |
| Result: | 100 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 17 |
| #2 | ACCEPTED | 83 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.01 s | 1, 2 | details |
| #2 | ACCEPTED | 0.01 s | 1, 2 | details |
| #3 | ACCEPTED | 0.01 s | 1, 2 | details |
| #4 | ACCEPTED | 0.01 s | 1, 2 | details |
| #5 | ACCEPTED | 0.01 s | 1, 2 | details |
| #6 | ACCEPTED | 0.01 s | 1, 2 | details |
| #7 | ACCEPTED | 0.01 s | 1, 2 | details |
| #8 | ACCEPTED | 0.01 s | 1, 2 | details |
| #9 | ACCEPTED | 0.01 s | 1, 2 | details |
| #10 | ACCEPTED | 0.01 s | 1, 2 | details |
| #11 | ACCEPTED | 0.01 s | 1, 2 | details |
| #12 | ACCEPTED | 0.01 s | 1, 2 | details |
| #13 | ACCEPTED | 0.01 s | 1, 2 | details |
| #14 | ACCEPTED | 0.01 s | 1, 2 | details |
| #15 | ACCEPTED | 0.01 s | 1, 2 | details |
| #16 | ACCEPTED | 0.09 s | 2 | details |
| #17 | ACCEPTED | 0.09 s | 2 | details |
| #18 | ACCEPTED | 0.09 s | 2 | details |
| #19 | ACCEPTED | 0.09 s | 2 | details |
| #20 | ACCEPTED | 0.09 s | 2 | details |
Code
#include <iostream>
#include <vector>
#include <map>
using namespace std;
using ll = long long;
constexpr ll MOD = 1e9+7;
constexpr ll N_MAX = 2e5+100;
ll fact_2_exps[N_MAX];
ll nCk_mod2(int n, int k) {
return (fact_2_exps[n] - fact_2_exps[k] - fact_2_exps[n-k] == 0);
}
int main() {
fact_2_exps[0] = 0;
for(int i = 1; i < N_MAX; ++i) {
fact_2_exps[i] = fact_2_exps[i-1];
int tmp = i;
for(; tmp%2 == 0; tmp/=2) {
++fact_2_exps[i];
}
}
int n;
cin>>n;
std::vector<int> v(n);
for(int i = 0; i < n; ++i) {
cin>>v[i];
}
std::vector<int> mod_counts(n);
for(int i = 0; i < n; ++i) {
mod_counts[i] = nCk_mod2(n-1, i);
}
int ans = 0;
for(int i = 0; i <= 30; ++i) {
for(int j = 0; j < n; ++j) {
if(mod_counts[j]) {
ans ^= (v[j] & (1<<i));
}
}
}
cout << ans << std::endl;
}
Test details
Test 1
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 1 80 |
| correct output |
|---|
| 80 |
| user output |
|---|
| 80 |
Test 2
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 2 69 91 |
| correct output |
|---|
| 30 |
| user output |
|---|
| 30 |
Test 3
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 3 47 74 75 |
| correct output |
|---|
| 100 |
| user output |
|---|
| 100 |
Test 4
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 4 94 22 100 43 |
| correct output |
|---|
| 7 |
| user output |
|---|
| 7 |
Test 5
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 5 50 82 47 40 51 |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 6
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 6 90 27 98 85 47 14 |
| correct output |
|---|
| 96 |
| user output |
|---|
| 96 |
Test 7
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 7 55 82 52 9 65 90 86 |
| correct output |
|---|
| 20 |
| user output |
|---|
| 20 |
Test 8
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 8 45 52 52 95 40 85 3 46 |
| correct output |
|---|
| 34 |
| user output |
|---|
| 34 |
Test 9
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 9 77 16 59 32 22 41 87 89 78 |
| correct output |
|---|
| 3 |
| user output |
|---|
| 3 |
Test 10
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 10 59 78 34 26 71 9 82 68 80 74 |
| correct output |
|---|
| 111 |
| user output |
|---|
| 111 |
Test 11
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 100 100 6 10 53 84 80 7 87 3 82 26... |
| correct output |
|---|
| 91 |
| user output |
|---|
| 91 |
Test 12
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 100 25 18 62 51 79 55 71 33 21 29 ... |
| correct output |
|---|
| 58 |
| user output |
|---|
| 58 |
Test 13
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 100 3 20 19 60 11 84 94 79 63 59 9... |
| correct output |
|---|
| 124 |
| user output |
|---|
| 124 |
Test 14
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 100 99 86 42 2 97 78 8 12 98 7 98 ... |
| correct output |
|---|
| 49 |
| user output |
|---|
| 49 |
Test 15
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 100 19 19 14 30 80 53 21 18 26 85 ... |
| correct output |
|---|
| 42 |
| user output |
|---|
| 42 |
Test 16
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 200000 852837035 608724072 368935143 ... |
| correct output |
|---|
| 680579671 |
| user output |
|---|
| 680579671 |
Test 17
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 200000 255817977 550740070 115276527 ... |
| correct output |
|---|
| 177586289 |
| user output |
|---|
| 177586289 |
Test 18
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 200000 30889540 9467827 526159961 367... |
| correct output |
|---|
| 439343644 |
| user output |
|---|
| 439343644 |
Test 19
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 200000 421000302 598694653 199802169 ... |
| correct output |
|---|
| 184880259 |
| user output |
|---|
| 184880259 |
Test 20
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 200000 578873143 289492857 855880936 ... |
| correct output |
|---|
| 937457144 |
| user output |
|---|
| 937457144 |
