Submission #24939130
Source Code Expand
#include "bits/stdc++.h" #define int long long using namespace std; using ll = long long; using P = pair<ll, ll>; const ll INF = (1LL << 61); ll mod = 1000000007; struct mint { ll x; // typedef long long ll; mint(ll x = 0) :x((x%mod + mod) % mod) {} mint operator-() const { return mint(-x); } mint& operator+=(const mint a) { if ((x += a.x) >= mod) x -= mod; return *this; } mint& operator-=(const mint a) { if ((x += mod - a.x) >= mod) x -= mod; return *this; } mint& operator*=(const mint a) { (x *= a.x) %= mod; return *this; } mint operator+(const mint a) const { mint res(*this); return res += a; } mint operator-(const mint a) const { mint res(*this); return res -= a; } mint operator*(const mint a) const { mint res(*this); return res *= a; } mint pow(ll t) const { if (!t) return 1; mint a = pow(t >> 1); a *= a; if (t & 1) a *= *this; return a; } // for prime mod mint inv() const { return pow(mod - 2); } mint& operator/=(const mint a) { return (*this) *= a.inv(); } mint operator/(const mint a) const { mint res(*this); return res /= a; } }; istream& operator>>(istream& is, mint& a) { return is >> a.x; } ostream& operator<<(ostream& os, const mint& a) { return os << a.x; } int N, Q; int x[55], y[55], z[55], w[55]; signed main() { ios::sync_with_stdio(false); cin.tie(0); cin >> N >> Q; for (int i = 0; i < Q; i++) { cin >> x[i] >> y[i] >> z[i] >> w[i]; x[i]--; y[i]--; z[i]--; } mint ans = 1; for (int i = 0; i < 60; i++) { mint cnt = 0; for (int bit = 0; bit < (1 << N); bit++) { vector<int>now(N); for (int j = 0; j < N; j++) { if (bit & (1LL << j)) { now[j] = 1; } } bool ok = true; for (int j = 0; j < Q; j++) { int t = now[x[j]]; t |= now[y[j]]; t |= now[z[j]]; int t2 = (int)(w[j] & (1LL << i)); if (t2)t2 = 1; if (t != t2)ok = false; } if (ok) { cnt += 1; } } ans *= cnt; } cout << ans << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | 086 - Snuke's Favorite Arrays(★5) |
User | Example |
Language | C++ (GCC 9.2.1) |
Score | 5 |
Code Size | 2094 Byte |
Status | AC |
Exec Time | 49 ms |
Memory | 3612 KiB |
Judge Result
Set Name | All | ||
---|---|---|---|
Score / Max Score | 5 / 5 | ||
Status |
|
Set Name | Test Cases |
---|---|
All | 00_sample_00.txt, 00_sample_01.txt, 10_random_large_00.txt, 10_random_large_01.txt, 10_random_large_02.txt, 11_random_max_00.txt, 11_random_max_01.txt, 11_random_max_02.txt, 20_exists_large_00.txt, 20_exists_large_01.txt, 20_exists_large_02.txt, 20_exists_large_03.txt, 20_exists_large_04.txt, 20_exists_large_05.txt, 20_exists_large_06.txt, 20_exists_large_07.txt, 20_exists_large_08.txt, 20_exists_large_09.txt, 21_exists_max_00.txt, 21_exists_max_01.txt, 21_exists_max_02.txt, 21_exists_max_03.txt, 21_exists_max_04.txt, 21_exists_max_05.txt, 21_exists_max_06.txt, 21_exists_max_07.txt, 21_exists_max_08.txt, 21_exists_max_09.txt, 80_corner_00.txt, 81_corner_00.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00_sample_00.txt | AC | 7 ms | 3612 KiB |
00_sample_01.txt | AC | 4 ms | 3528 KiB |
10_random_large_00.txt | AC | 13 ms | 3488 KiB |
10_random_large_01.txt | AC | 13 ms | 3472 KiB |
10_random_large_02.txt | AC | 5 ms | 3484 KiB |
11_random_max_00.txt | AC | 41 ms | 3492 KiB |
11_random_max_01.txt | AC | 40 ms | 3472 KiB |
11_random_max_02.txt | AC | 47 ms | 3496 KiB |
20_exists_large_00.txt | AC | 24 ms | 3464 KiB |
20_exists_large_01.txt | AC | 2 ms | 3424 KiB |
20_exists_large_02.txt | AC | 10 ms | 3424 KiB |
20_exists_large_03.txt | AC | 3 ms | 3424 KiB |
20_exists_large_04.txt | AC | 18 ms | 3488 KiB |
20_exists_large_05.txt | AC | 6 ms | 3532 KiB |
20_exists_large_06.txt | AC | 33 ms | 3424 KiB |
20_exists_large_07.txt | AC | 13 ms | 3524 KiB |
20_exists_large_08.txt | AC | 2 ms | 3576 KiB |
20_exists_large_09.txt | AC | 3 ms | 3472 KiB |
21_exists_max_00.txt | AC | 47 ms | 3548 KiB |
21_exists_max_01.txt | AC | 45 ms | 3540 KiB |
21_exists_max_02.txt | AC | 47 ms | 3548 KiB |
21_exists_max_03.txt | AC | 46 ms | 3524 KiB |
21_exists_max_04.txt | AC | 49 ms | 3484 KiB |
21_exists_max_05.txt | AC | 47 ms | 3552 KiB |
21_exists_max_06.txt | AC | 47 ms | 3548 KiB |
21_exists_max_07.txt | AC | 47 ms | 3468 KiB |
21_exists_max_08.txt | AC | 45 ms | 3528 KiB |
21_exists_max_09.txt | AC | 47 ms | 3540 KiB |
80_corner_00.txt | AC | 46 ms | 3468 KiB |
81_corner_00.txt | AC | 47 ms | 3468 KiB |