Submission #14235310
Source Code Expand
#include <cmath>
#include <functional>
#include <fstream>
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <set>
#include <map>
#include <list>
#include <time.h>
#include <math.h>
#include <random>
#include <deque>
#include <queue>
#include <cassert>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>
#include <bitset>
#include <sstream>
#include <chrono>
#include <cstring>
using namespace std;
typedef long long ll;
#ifdef iq
mt19937 rnd(228);
#else
mt19937 rnd(chrono::high_resolution_clock::now().time_since_epoch().count());
#endif
int s, t;
ll ok[18][2];
ll comb[51][51];
ll f[51];
ll ans = 0;
void brute(int bit, int sign, ll cands) {
if (bit == 18) {
ans += f[__builtin_popcountll(cands)] * sign;
} else {
if (((s >> bit) & 1) == ((t >> bit) & 1)) {
brute(bit + 1, sign, cands);
} else {
brute(bit + 1, sign, cands);
brute(bit + 1, -sign, cands & ok[bit][0]);
brute(bit + 1, -sign, cands & ok[bit][1]);
}
}
}
int main() {
#ifdef iq
freopen("a.in", "r", stdin);
#endif
ios::sync_with_stdio(0);
cin.tie(0);
int n, k;
cin >> n >> k;
cin >> s >> t;
comb[0][0] = 1;
for (int i = 0; i <= n; i++) {
for (int j = 0; j <= n; j++) {
if (i) comb[i][j] += comb[i - 1][j];
if (i && j) comb[i][j] += comb[i - 1][j - 1];
}
}
for (int i = 0; i <= n; i++) {
for (int j = 1; j <= k; j++) {
f[i] += comb[i][j];
}
}
vector <int> a(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
if ((t & s) != s) {
cout << 0 << '\n';
return 0;
}
vector <int> x;
for (int i = 0; i < n; i++) {
if (((a[i] & t) == a[i]) && ((a[i] | s) == a[i])) {
x.push_back(a[i]);
}
}
a = x;
n = (int) a.size();
for (int i = 0; i < n; i++) {
for (int j = 0; j < 18; j++) {
ok[j][(a[i] >> j) & 1] |= (1ll << i);
}
}
brute(0, 1, (1ll << n) - 1);
cout << ans << endl;
}
Submission Info
| Submission Time | |
|---|---|
| Task | E - O(rand) |
| User | 300iq |
| Language | C++ (GCC 9.2.1) |
| Score | 800 |
| Code Size | 2061 Byte |
| Status | AC |
| Exec Time | 2162 ms |
| Memory | 3684 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 800 / 800 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample01.txt, sample02.txt, sample03.txt |
| All | sample01.txt, sample02.txt, sample03.txt, in01.txt, in02.txt, in03.txt, in04.txt, in05.txt, in06.txt, in07.txt, in08.txt, in09.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, in26.txt, in27.txt, in28.txt, in29.txt, in30.txt, in31.txt, in32.txt, in33.txt, in34.txt, in35.txt, in36.txt, in37.txt, in38.txt, in39.txt, in40.txt, sample01.txt, sample02.txt, sample03.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| in01.txt | AC | 8 ms | 3528 KiB |
| in02.txt | AC | 2 ms | 3528 KiB |
| in03.txt | AC | 2149 ms | 3592 KiB |
| in04.txt | AC | 2151 ms | 3684 KiB |
| in05.txt | AC | 5 ms | 3476 KiB |
| in06.txt | AC | 111 ms | 3632 KiB |
| in07.txt | AC | 296 ms | 3592 KiB |
| in08.txt | AC | 2158 ms | 3596 KiB |
| in09.txt | AC | 2154 ms | 3596 KiB |
| in10.txt | AC | 2155 ms | 3536 KiB |
| in11.txt | AC | 2150 ms | 3536 KiB |
| in12.txt | AC | 2162 ms | 3536 KiB |
| in13.txt | AC | 2154 ms | 3612 KiB |
| in14.txt | AC | 2151 ms | 3532 KiB |
| in15.txt | AC | 2155 ms | 3536 KiB |
| in16.txt | AC | 2155 ms | 3672 KiB |
| in17.txt | AC | 2150 ms | 3672 KiB |
| in18.txt | AC | 2152 ms | 3480 KiB |
| in19.txt | AC | 2160 ms | 3596 KiB |
| in20.txt | AC | 2151 ms | 3532 KiB |
| in21.txt | AC | 2153 ms | 3640 KiB |
| in22.txt | AC | 2155 ms | 3596 KiB |
| in23.txt | AC | 2153 ms | 3580 KiB |
| in24.txt | AC | 2151 ms | 3680 KiB |
| in25.txt | AC | 2156 ms | 3640 KiB |
| in26.txt | AC | 2155 ms | 3672 KiB |
| in27.txt | AC | 2152 ms | 3672 KiB |
| in28.txt | AC | 2152 ms | 3476 KiB |
| in29.txt | AC | 2152 ms | 3580 KiB |
| in30.txt | AC | 2156 ms | 3648 KiB |
| in31.txt | AC | 2150 ms | 3596 KiB |
| in32.txt | AC | 2154 ms | 3532 KiB |
| in33.txt | AC | 2158 ms | 3672 KiB |
| in34.txt | AC | 2155 ms | 3468 KiB |
| in35.txt | AC | 2151 ms | 3680 KiB |
| in36.txt | AC | 2152 ms | 3644 KiB |
| in37.txt | AC | 2155 ms | 3476 KiB |
| in38.txt | AC | 2152 ms | 3628 KiB |
| in39.txt | AC | 2152 ms | 3632 KiB |
| in40.txt | AC | 2155 ms | 3532 KiB |
| sample01.txt | AC | 2 ms | 3576 KiB |
| sample02.txt | AC | 2 ms | 3500 KiB |
| sample03.txt | AC | 2 ms | 3456 KiB |