QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#723445 | #7932. AND-OR closure | maspy | TL | 977ms | 20632kb | C++23 | 22.0kb | 2024-11-07 22:18:46 | 2024-11-07 22:18:47 |
Judging History
answer
#line 1 "/home/maspy/compro/library/my_template.hpp"
#if defined(LOCAL)
#include <my_template_compiled.hpp>
#else
// https://codeforces.com/blog/entry/96344
#pragma GCC optimize("Ofast,unroll-loops")
// いまの CF だとこれ入れると動かない?
// #pragma GCC target("avx2,popcnt")
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using u8 = uint8_t;
using u16 = uint16_t;
using u32 = uint32_t;
using u64 = uint64_t;
using i128 = __int128;
using u128 = unsigned __int128;
using f128 = __float128;
template <class T>
constexpr T infty = 0;
template <>
constexpr int infty<int> = 1'010'000'000;
template <>
constexpr ll infty<ll> = 2'020'000'000'000'000'000;
template <>
constexpr u32 infty<u32> = infty<int>;
template <>
constexpr u64 infty<u64> = infty<ll>;
template <>
constexpr i128 infty<i128> = i128(infty<ll>) * 2'000'000'000'000'000'000;
template <>
constexpr double infty<double> = infty<ll>;
template <>
constexpr long double infty<long double> = infty<ll>;
using pi = pair<ll, ll>;
using vi = vector<ll>;
template <class T>
using vc = vector<T>;
template <class T>
using vvc = vector<vc<T>>;
template <class T>
using vvvc = vector<vvc<T>>;
template <class T>
using vvvvc = vector<vvvc<T>>;
template <class T>
using vvvvvc = vector<vvvvc<T>>;
template <class T>
using pq = priority_queue<T>;
template <class T>
using pqg = priority_queue<T, vector<T>, greater<T>>;
#define vv(type, name, h, ...) vector<vector<type>> name(h, vector<type>(__VA_ARGS__))
#define vvv(type, name, h, w, ...) vector<vector<vector<type>>> name(h, vector<vector<type>>(w, vector<type>(__VA_ARGS__)))
#define vvvv(type, name, a, b, c, ...) \
vector<vector<vector<vector<type>>>> name(a, vector<vector<vector<type>>>(b, vector<vector<type>>(c, vector<type>(__VA_ARGS__))))
// https://trap.jp/post/1224/
#define FOR1(a) for (ll _ = 0; _ < ll(a); ++_)
#define FOR2(i, a) for (ll i = 0; i < ll(a); ++i)
#define FOR3(i, a, b) for (ll i = a; i < ll(b); ++i)
#define FOR4(i, a, b, c) for (ll i = a; i < ll(b); i += (c))
#define FOR1_R(a) for (ll i = (a)-1; i >= ll(0); --i)
#define FOR2_R(i, a) for (ll i = (a)-1; i >= ll(0); --i)
#define FOR3_R(i, a, b) for (ll i = (b)-1; i >= ll(a); --i)
#define overload4(a, b, c, d, e, ...) e
#define overload3(a, b, c, d, ...) d
#define FOR(...) overload4(__VA_ARGS__, FOR4, FOR3, FOR2, FOR1)(__VA_ARGS__)
#define FOR_R(...) overload3(__VA_ARGS__, FOR3_R, FOR2_R, FOR1_R)(__VA_ARGS__)
#define FOR_subset(t, s) for (ll t = (s); t >= 0; t = (t == 0 ? -1 : (t - 1) & (s)))
#define all(x) x.begin(), x.end()
#define len(x) ll(x.size())
#define elif else if
#define eb emplace_back
#define mp make_pair
#define mt make_tuple
#define fi first
#define se second
#define stoi stoll
int popcnt(int x) { return __builtin_popcount(x); }
int popcnt(u32 x) { return __builtin_popcount(x); }
int popcnt(ll x) { return __builtin_popcountll(x); }
int popcnt(u64 x) { return __builtin_popcountll(x); }
int popcnt_sgn(int x) { return (__builtin_parity(x) & 1 ? -1 : 1); }
int popcnt_sgn(u32 x) { return (__builtin_parity(x) & 1 ? -1 : 1); }
int popcnt_sgn(ll x) { return (__builtin_parity(x) & 1 ? -1 : 1); }
int popcnt_sgn(u64 x) { return (__builtin_parity(x) & 1 ? -1 : 1); }
// (0, 1, 2, 3, 4) -> (-1, 0, 1, 1, 2)
int topbit(int x) { return (x == 0 ? -1 : 31 - __builtin_clz(x)); }
int topbit(u32 x) { return (x == 0 ? -1 : 31 - __builtin_clz(x)); }
int topbit(ll x) { return (x == 0 ? -1 : 63 - __builtin_clzll(x)); }
int topbit(u64 x) { return (x == 0 ? -1 : 63 - __builtin_clzll(x)); }
// (0, 1, 2, 3, 4) -> (-1, 0, 1, 0, 2)
int lowbit(int x) { return (x == 0 ? -1 : __builtin_ctz(x)); }
int lowbit(u32 x) { return (x == 0 ? -1 : __builtin_ctz(x)); }
int lowbit(ll x) { return (x == 0 ? -1 : __builtin_ctzll(x)); }
int lowbit(u64 x) { return (x == 0 ? -1 : __builtin_ctzll(x)); }
template <typename T>
T floor(T a, T b) {
return a / b - (a % b && (a ^ b) < 0);
}
template <typename T>
T ceil(T x, T y) {
return floor(x + y - 1, y);
}
template <typename T>
T bmod(T x, T y) {
return x - y * floor(x, y);
}
template <typename T>
pair<T, T> divmod(T x, T y) {
T q = floor(x, y);
return {q, x - q * y};
}
template <typename T, typename U>
T SUM(const vector<U> &A) {
T sm = 0;
for (auto &&a: A) sm += a;
return sm;
}
#define MIN(v) *min_element(all(v))
#define MAX(v) *max_element(all(v))
#define LB(c, x) distance((c).begin(), lower_bound(all(c), (x)))
#define UB(c, x) distance((c).begin(), upper_bound(all(c), (x)))
#define UNIQUE(x) sort(all(x)), x.erase(unique(all(x)), x.end()), x.shrink_to_fit()
template <typename T>
T POP(deque<T> &que) {
T a = que.front();
que.pop_front();
return a;
}
template <typename T>
T POP(pq<T> &que) {
T a = que.top();
que.pop();
return a;
}
template <typename T>
T POP(pqg<T> &que) {
T a = que.top();
que.pop();
return a;
}
template <typename T>
T POP(vc<T> &que) {
T a = que.back();
que.pop_back();
return a;
}
template <typename F>
ll binary_search(F check, ll ok, ll ng, bool check_ok = true) {
if (check_ok) assert(check(ok));
while (abs(ok - ng) > 1) {
auto x = (ng + ok) / 2;
(check(x) ? ok : ng) = x;
}
return ok;
}
template <typename F>
double binary_search_real(F check, double ok, double ng, int iter = 100) {
FOR(iter) {
double x = (ok + ng) / 2;
(check(x) ? ok : ng) = x;
}
return (ok + ng) / 2;
}
template <class T, class S>
inline bool chmax(T &a, const S &b) {
return (a < b ? a = b, 1 : 0);
}
template <class T, class S>
inline bool chmin(T &a, const S &b) {
return (a > b ? a = b, 1 : 0);
}
// ? は -1
vc<int> s_to_vi(const string &S, char first_char) {
vc<int> A(S.size());
FOR(i, S.size()) { A[i] = (S[i] != '?' ? S[i] - first_char : -1); }
return A;
}
template <typename T, typename U>
vector<T> cumsum(vector<U> &A, int off = 1) {
int N = A.size();
vector<T> B(N + 1);
FOR(i, N) { B[i + 1] = B[i] + A[i]; }
if (off == 0) B.erase(B.begin());
return B;
}
// stable sort
template <typename T>
vector<int> argsort(const vector<T> &A) {
vector<int> ids(len(A));
iota(all(ids), 0);
sort(all(ids), [&](int i, int j) { return (A[i] == A[j] ? i < j : A[i] < A[j]); });
return ids;
}
// A[I[0]], A[I[1]], ...
template <typename T>
vc<T> rearrange(const vc<T> &A, const vc<int> &I) {
vc<T> B(len(I));
FOR(i, len(I)) B[i] = A[I[i]];
return B;
}
template <typename T, typename... Vectors>
void concat(vc<T> &first, const Vectors &... others) {
vc<T> &res = first;
(res.insert(res.end(), others.begin(), others.end()), ...);
}
#endif
#line 1 "/home/maspy/compro/library/other/io.hpp"
#define FASTIO
#include <unistd.h>
// https://judge.yosupo.jp/submission/21623
namespace fastio {
static constexpr uint32_t SZ = 1 << 17;
char ibuf[SZ];
char obuf[SZ];
char out[100];
// pointer of ibuf, obuf
uint32_t pil = 0, pir = 0, por = 0;
struct Pre {
char num[10000][4];
constexpr Pre() : num() {
for (int i = 0; i < 10000; i++) {
int n = i;
for (int j = 3; j >= 0; j--) {
num[i][j] = n % 10 | '0';
n /= 10;
}
}
}
} constexpr pre;
inline void load() {
memcpy(ibuf, ibuf + pil, pir - pil);
pir = pir - pil + fread(ibuf + pir - pil, 1, SZ - pir + pil, stdin);
pil = 0;
if (pir < SZ) ibuf[pir++] = '\n';
}
inline void flush() {
fwrite(obuf, 1, por, stdout);
por = 0;
}
void rd(char &c) {
do {
if (pil + 1 > pir) load();
c = ibuf[pil++];
} while (isspace(c));
}
void rd(string &x) {
x.clear();
char c;
do {
if (pil + 1 > pir) load();
c = ibuf[pil++];
} while (isspace(c));
do {
x += c;
if (pil == pir) load();
c = ibuf[pil++];
} while (!isspace(c));
}
template <typename T>
void rd_real(T &x) {
string s;
rd(s);
x = stod(s);
}
template <typename T>
void rd_integer(T &x) {
if (pil + 100 > pir) load();
char c;
do
c = ibuf[pil++];
while (c < '-');
bool minus = 0;
if constexpr (is_signed<T>::value || is_same_v<T, i128>) {
if (c == '-') { minus = 1, c = ibuf[pil++]; }
}
x = 0;
while ('0' <= c) { x = x * 10 + (c & 15), c = ibuf[pil++]; }
if constexpr (is_signed<T>::value || is_same_v<T, i128>) {
if (minus) x = -x;
}
}
void rd(int &x) { rd_integer(x); }
void rd(ll &x) { rd_integer(x); }
void rd(i128 &x) { rd_integer(x); }
void rd(u32 &x) { rd_integer(x); }
void rd(u64 &x) { rd_integer(x); }
void rd(u128 &x) { rd_integer(x); }
void rd(double &x) { rd_real(x); }
void rd(long double &x) { rd_real(x); }
void rd(f128 &x) { rd_real(x); }
template <class T, class U>
void rd(pair<T, U> &p) {
return rd(p.first), rd(p.second);
}
template <size_t N = 0, typename T>
void rd_tuple(T &t) {
if constexpr (N < std::tuple_size<T>::value) {
auto &x = std::get<N>(t);
rd(x);
rd_tuple<N + 1>(t);
}
}
template <class... T>
void rd(tuple<T...> &tpl) {
rd_tuple(tpl);
}
template <size_t N = 0, typename T>
void rd(array<T, N> &x) {
for (auto &d: x) rd(d);
}
template <class T>
void rd(vc<T> &x) {
for (auto &d: x) rd(d);
}
void read() {}
template <class H, class... T>
void read(H &h, T &... t) {
rd(h), read(t...);
}
void wt(const char c) {
if (por == SZ) flush();
obuf[por++] = c;
}
void wt(const string s) {
for (char c: s) wt(c);
}
void wt(const char *s) {
size_t len = strlen(s);
for (size_t i = 0; i < len; i++) wt(s[i]);
}
template <typename T>
void wt_integer(T x) {
if (por > SZ - 100) flush();
if (x < 0) { obuf[por++] = '-', x = -x; }
int outi;
for (outi = 96; x >= 10000; outi -= 4) {
memcpy(out + outi, pre.num[x % 10000], 4);
x /= 10000;
}
if (x >= 1000) {
memcpy(obuf + por, pre.num[x], 4);
por += 4;
} else if (x >= 100) {
memcpy(obuf + por, pre.num[x] + 1, 3);
por += 3;
} else if (x >= 10) {
int q = (x * 103) >> 10;
obuf[por] = q | '0';
obuf[por + 1] = (x - q * 10) | '0';
por += 2;
} else
obuf[por++] = x | '0';
memcpy(obuf + por, out + outi + 4, 96 - outi);
por += 96 - outi;
}
template <typename T>
void wt_real(T x) {
ostringstream oss;
oss << fixed << setprecision(15) << double(x);
string s = oss.str();
wt(s);
}
void wt(int x) { wt_integer(x); }
void wt(ll x) { wt_integer(x); }
void wt(i128 x) { wt_integer(x); }
void wt(u32 x) { wt_integer(x); }
void wt(u64 x) { wt_integer(x); }
void wt(u128 x) { wt_integer(x); }
void wt(double x) { wt_real(x); }
void wt(long double x) { wt_real(x); }
void wt(f128 x) { wt_real(x); }
template <class T, class U>
void wt(const pair<T, U> val) {
wt(val.first);
wt(' ');
wt(val.second);
}
template <size_t N = 0, typename T>
void wt_tuple(const T t) {
if constexpr (N < std::tuple_size<T>::value) {
if constexpr (N > 0) { wt(' '); }
const auto x = std::get<N>(t);
wt(x);
wt_tuple<N + 1>(t);
}
}
template <class... T>
void wt(tuple<T...> tpl) {
wt_tuple(tpl);
}
template <class T, size_t S>
void wt(const array<T, S> val) {
auto n = val.size();
for (size_t i = 0; i < n; i++) {
if (i) wt(' ');
wt(val[i]);
}
}
template <class T>
void wt(const vector<T> val) {
auto n = val.size();
for (size_t i = 0; i < n; i++) {
if (i) wt(' ');
wt(val[i]);
}
}
void print() { wt('\n'); }
template <class Head, class... Tail>
void print(Head &&head, Tail &&... tail) {
wt(head);
if (sizeof...(Tail)) wt(' ');
print(forward<Tail>(tail)...);
}
// gcc expansion. called automaticall after main.
void __attribute__((destructor)) _d() { flush(); }
} // namespace fastio
using fastio::read;
using fastio::print;
using fastio::flush;
#if defined(LOCAL)
#define SHOW(...) SHOW_IMPL(__VA_ARGS__, SHOW6, SHOW5, SHOW4, SHOW3, SHOW2, SHOW1)(__VA_ARGS__)
#define SHOW_IMPL(_1, _2, _3, _4, _5, _6, NAME, ...) NAME
#define SHOW1(x) print(#x, "=", (x)), flush()
#define SHOW2(x, y) print(#x, "=", (x), #y, "=", (y)), flush()
#define SHOW3(x, y, z) print(#x, "=", (x), #y, "=", (y), #z, "=", (z)), flush()
#define SHOW4(x, y, z, w) print(#x, "=", (x), #y, "=", (y), #z, "=", (z), #w, "=", (w)), flush()
#define SHOW5(x, y, z, w, v) print(#x, "=", (x), #y, "=", (y), #z, "=", (z), #w, "=", (w), #v, "=", (v)), flush()
#define SHOW6(x, y, z, w, v, u) print(#x, "=", (x), #y, "=", (y), #z, "=", (z), #w, "=", (w), #v, "=", (v), #u, "=", (u)), flush()
#else
#define SHOW(...)
#endif
#define INT(...) \
int __VA_ARGS__; \
read(__VA_ARGS__)
#define LL(...) \
ll __VA_ARGS__; \
read(__VA_ARGS__)
#define U32(...) \
u32 __VA_ARGS__; \
read(__VA_ARGS__)
#define U64(...) \
u64 __VA_ARGS__; \
read(__VA_ARGS__)
#define STR(...) \
string __VA_ARGS__; \
read(__VA_ARGS__)
#define CHAR(...) \
char __VA_ARGS__; \
read(__VA_ARGS__)
#define DBL(...) \
double __VA_ARGS__; \
read(__VA_ARGS__)
#define VEC(type, name, size) \
vector<type> name(size); \
read(name)
#define VV(type, name, h, w) \
vector<vector<type>> name(h, vector<type>(w)); \
read(name)
void YES(bool t = 1) { print(t ? "YES" : "NO"); }
void NO(bool t = 1) { YES(!t); }
void Yes(bool t = 1) { print(t ? "Yes" : "No"); }
void No(bool t = 1) { Yes(!t); }
void yes(bool t = 1) { print(t ? "yes" : "no"); }
void no(bool t = 1) { yes(!t); }
#line 3 "main.cpp"
#line 2 "/home/maspy/compro/library/graph/base.hpp"
template <typename T>
struct Edge {
int frm, to;
T cost;
int id;
};
template <typename T = int, bool directed = false>
struct Graph {
static constexpr bool is_directed = directed;
int N, M;
using cost_type = T;
using edge_type = Edge<T>;
vector<edge_type> edges;
vector<int> indptr;
vector<edge_type> csr_edges;
vc<int> vc_deg, vc_indeg, vc_outdeg;
bool prepared;
class OutgoingEdges {
public:
OutgoingEdges(const Graph* G, int l, int r) : G(G), l(l), r(r) {}
const edge_type* begin() const {
if (l == r) { return 0; }
return &G->csr_edges[l];
}
const edge_type* end() const {
if (l == r) { return 0; }
return &G->csr_edges[r];
}
private:
const Graph* G;
int l, r;
};
bool is_prepared() { return prepared; }
Graph() : N(0), M(0), prepared(0) {}
Graph(int N) : N(N), M(0), prepared(0) {}
void build(int n) {
N = n, M = 0;
prepared = 0;
edges.clear();
indptr.clear();
csr_edges.clear();
vc_deg.clear();
vc_indeg.clear();
vc_outdeg.clear();
}
void add(int frm, int to, T cost = 1, int i = -1) {
assert(!prepared);
assert(0 <= frm && 0 <= to && to < N);
if (i == -1) i = M;
auto e = edge_type({frm, to, cost, i});
edges.eb(e);
++M;
}
#ifdef FASTIO
// wt, off
void read_tree(bool wt = false, int off = 1) { read_graph(N - 1, wt, off); }
void read_graph(int M, bool wt = false, int off = 1) {
for (int m = 0; m < M; ++m) {
INT(a, b);
a -= off, b -= off;
if (!wt) {
add(a, b);
} else {
T c;
read(c);
add(a, b, c);
}
}
build();
}
#endif
void build() {
assert(!prepared);
prepared = true;
indptr.assign(N + 1, 0);
for (auto&& e: edges) {
indptr[e.frm + 1]++;
if (!directed) indptr[e.to + 1]++;
}
for (int v = 0; v < N; ++v) { indptr[v + 1] += indptr[v]; }
auto counter = indptr;
csr_edges.resize(indptr.back() + 1);
for (auto&& e: edges) {
csr_edges[counter[e.frm]++] = e;
if (!directed)
csr_edges[counter[e.to]++] = edge_type({e.to, e.frm, e.cost, e.id});
}
}
OutgoingEdges operator[](int v) const {
assert(prepared);
return {this, indptr[v], indptr[v + 1]};
}
vc<int> deg_array() {
if (vc_deg.empty()) calc_deg();
return vc_deg;
}
pair<vc<int>, vc<int>> deg_array_inout() {
if (vc_indeg.empty()) calc_deg_inout();
return {vc_indeg, vc_outdeg};
}
int deg(int v) {
if (vc_deg.empty()) calc_deg();
return vc_deg[v];
}
int in_deg(int v) {
if (vc_indeg.empty()) calc_deg_inout();
return vc_indeg[v];
}
int out_deg(int v) {
if (vc_outdeg.empty()) calc_deg_inout();
return vc_outdeg[v];
}
#ifdef FASTIO
void debug() {
print("Graph");
if (!prepared) {
print("frm to cost id");
for (auto&& e: edges) print(e.frm, e.to, e.cost, e.id);
} else {
print("indptr", indptr);
print("frm to cost id");
FOR(v, N) for (auto&& e: (*this)[v]) print(e.frm, e.to, e.cost, e.id);
}
}
#endif
vc<int> new_idx;
vc<bool> used_e;
// G における頂点 V[i] が、新しいグラフで i になるようにする
// {G, es}
// sum(deg(v)) の計算量になっていて、
// 新しいグラフの n+m より大きい可能性があるので注意
Graph<T, directed> rearrange(vc<int> V, bool keep_eid = 0) {
if (len(new_idx) != N) new_idx.assign(N, -1);
int n = len(V);
FOR(i, n) new_idx[V[i]] = i;
Graph<T, directed> G(n);
vc<int> history;
FOR(i, n) {
for (auto&& e: (*this)[V[i]]) {
if (len(used_e) <= e.id) used_e.resize(e.id + 1);
if (used_e[e.id]) continue;
int a = e.frm, b = e.to;
if (new_idx[a] != -1 && new_idx[b] != -1) {
history.eb(e.id);
used_e[e.id] = 1;
int eid = (keep_eid ? e.id : -1);
G.add(new_idx[a], new_idx[b], e.cost, eid);
}
}
}
FOR(i, n) new_idx[V[i]] = -1;
for (auto&& eid: history) used_e[eid] = 0;
G.build();
return G;
}
Graph<T, true> to_directed_tree(int root = -1) {
if (root == -1) root = 0;
assert(!is_directed && prepared && M == N - 1);
Graph<T, true> G1(N);
vc<int> par(N, -1);
auto dfs = [&](auto& dfs, int v) -> void {
for (auto& e: (*this)[v]) {
if (e.to == par[v]) continue;
par[e.to] = v, dfs(dfs, e.to);
}
};
dfs(dfs, root);
for (auto& e: edges) {
int a = e.frm, b = e.to;
if (par[a] == b) swap(a, b);
assert(par[b] == a);
G1.add(a, b, e.cost);
}
G1.build();
return G1;
}
private:
void calc_deg() {
assert(vc_deg.empty());
vc_deg.resize(N);
for (auto&& e: edges) vc_deg[e.frm]++, vc_deg[e.to]++;
}
void calc_deg_inout() {
assert(vc_indeg.empty());
vc_indeg.resize(N);
vc_outdeg.resize(N);
for (auto&& e: edges) { vc_indeg[e.to]++, vc_outdeg[e.frm]++; }
}
};
#line 3 "/home/maspy/compro/library/graph/strongly_connected_component.hpp"
template <typename GT>
pair<int, vc<int>> strongly_connected_component(GT& G) {
static_assert(GT::is_directed);
assert(G.is_prepared());
int N = G.N;
int C = 0;
vc<int> comp(N), low(N), ord(N, -1), path;
int now = 0;
auto dfs = [&](auto& dfs, int v) -> void {
low[v] = ord[v] = now++;
path.eb(v);
for (auto&& [frm, to, cost, id]: G[v]) {
if (ord[to] == -1) {
dfs(dfs, to), chmin(low[v], low[to]);
} else {
chmin(low[v], ord[to]);
}
}
if (low[v] == ord[v]) {
while (1) {
int u = POP(path);
ord[u] = N, comp[u] = C;
if (u == v) break;
}
++C;
}
};
FOR(v, N) {
if (ord[v] == -1) dfs(dfs, v);
}
FOR(v, N) comp[v] = C - 1 - comp[v];
return {C, comp};
}
template <typename GT>
Graph<int, 1> scc_dag(GT& G, int C, vc<int>& comp) {
Graph<int, 1> DAG(C);
vvc<int> edges(C);
for (auto&& e: G.edges) {
int x = comp[e.frm], y = comp[e.to];
if (x == y) continue;
edges[x].eb(y);
}
FOR(c, C) {
UNIQUE(edges[c]);
for (auto&& to: edges[c]) DAG.add(c, to);
}
DAG.build();
return DAG;
}
#line 2 "/home/maspy/compro/library/setfunc/zeta.hpp"
template <typename T>
void superset_zeta(vc<T>& A) {
int log = topbit(len(A));
assert(1 << log == len(A));
FOR(n, log) FOR(s, 1 << log) {
int t = s ^ (1 << n);
if (s < t) A[s] += A[t];
}
}
template <typename T>
void superset_mobius(vc<T>& A) {
int log = topbit(len(A));
assert(1 << log == len(A));
FOR(n, log) FOR(s, 1 << log) {
int t = s ^ (1 << n);
if (s < t) A[s] -= A[t];
}
}
template <typename T>
void subset_zeta(vc<T>& A) {
int log = topbit(len(A));
assert(1 << log == len(A));
FOR(n, log) FOR(s, 1 << log) {
int t = s ^ (1 << n);
if (s > t) A[s] += A[t];
}
}
template <typename T>
void subset_mobius(vc<T>& A) {
int log = topbit(len(A));
assert(1 << log == len(A));
FOR(n, log) FOR(s, 1 << log) {
int t = s ^ (1 << n);
if (s > t) A[s] -= A[t];
}
}
#line 7 "main.cpp"
void solve() {
LL(N);
VEC(u64, A, N);
int K = 40;
vc<int> CNT(K);
FOR(i, N) FOR(k, K) CNT[k] += A[i] >> k & 1;
vc<int> V;
FOR(k, K) if (CNT[k] != 0 && CNT[k] != N) V.eb(k);
Graph<int, 1> G(K);
FOR(i, K) FOR(j, K) {
if (i == j) continue;
bool check = 1;
for (auto& x: A) {
if ((x >> i & 1) && (!(x >> j & 1))) check = 0;
}
if (check) G.add(i, j);
}
G.build();
G = G.rearrange(V);
auto [nc, comp] = strongly_connected_component(G);
auto DAG = scc_dag(G, nc, comp);
N = nc;
auto half = [&](int L, int R) -> vc<int> {
int n = R - L;
vc<int> dp(1 << n, 1);
FOR(s, 1 << n) {
for (auto& e: DAG.edges) {
int i = e.frm, j = e.to;
if (L <= i && i < R && L <= j && j < R) {
if ((s >> (i - L) & 1) && (!(s >> (j - L) & 1))) dp[s] = 0;
}
}
}
return dp;
};
// DAG.debug();
auto L = half(0, N / 2), R = half(N / 2, N);
SHOW(L);
SHOW(R);
vc<u64> adj(N);
for (auto& e: DAG.edges) { adj[e.frm] |= u64(1) << e.to; }
vc<u64> out(1 << (N / 2));
FOR(i, N / 2) FOR(s, 1 << i) { out[s | 1 << i] = out[s] | adj[i]; }
superset_zeta(R);
ll ANS = 0;
FOR(s, 1 << (N / 2)) {
if (!L[s]) continue;
int t = out[s] >> (N / 2);
ANS += R[t];
}
print(ANS);
}
signed main() { solve(); }
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 3756kb
input:
4 0 1 3 5
output:
5
result:
ok 1 number(s): "5"
Test #2:
score: 0
Accepted
time: 0ms
memory: 3764kb
input:
5 0 1 2 3 4
output:
8
result:
ok 1 number(s): "8"
Test #3:
score: 0
Accepted
time: 1ms
memory: 3772kb
input:
49 1097363587067 1096810445814 275012137504 1096739142630 1096809921522 1087071335264 829364908576 949625500192 1087142638448 1096200190829 1097292808175 1095750860656 1087144145776 1097346808827 1095734082416 1096755396578 829230678048 1095663303524 1087072842592 1096216444777 949623992864 10962714...
output:
52
result:
ok 1 number(s): "52"
Test #4:
score: 0
Accepted
time: 1ms
memory: 3756kb
input:
40 32 830045728951 278250692646 1021660937663 881584025918 275993636902 275953000615 327534555567 329833558447 278293950631 327534558639 893011227647 327533244718 1021660934591 1021661000703 893011161535 1030787822591 832344731831 275994947751 1073741862 329832247598 278292639782 1030787825663 10307...
output:
44
result:
ok 1 number(s): "44"
Test #5:
score: 0
Accepted
time: 0ms
memory: 3744kb
input:
113 995010353355 513836652779 438679050443 548477566959 507675377387 412904849600 412904919234 431506823898 1065151889147 436774574666 413152182848 438955900619 412871032896 436497750090 24159262794 419628520130 479476914639 427941630147 436493424714 412875358272 541196352 1098370744303 445117176011...
output:
143
result:
ok 1 number(s): "143"
Test #6:
score: 0
Accepted
time: 1ms
memory: 3756kb
input:
63 274873712607 183352984580 549655082623 549688637311 463755584628 188974231516 463789156220 183487485535 274873708508 183487464532 463789160319 188907059039 463755605631 137709486080 463822782207 181339965016 274840153820 187799217236 187799238239 463789139316 146970789464 549722255100 18897421461...
output:
63
result:
ok 1 number(s): "63"
Test #7:
score: 0
Accepted
time: 1ms
memory: 3760kb
input:
46 343736386052 77314129940 1099444493311 1094075521919 68724195332 353165185622 541926877791 490604139103 404722784854 1099444493023 1094142655359 410091756246 547530709727 1094142655071 352863191638 525047822943 524980689503 524678695519 547597843167 541859744639 1099511626463 507483193951 3875417...
output:
46
result:
ok 1 number(s): "46"
Test #8:
score: 0
Accepted
time: 1ms
memory: 3724kb
input:
49 73358378052 349495737422 73358394852 74617839076 349496261711 74433224164 74616757732 377952403438 349494672878 74618363365 74432142820 74156382272 352180764143 352180223054 77302324708 74432126020 1045287271919 377952927727 360772271598 74617822276 77302848997 1039379725807 1074829312 3494946560...
output:
49
result:
ok 1 number(s): "49"
Test #9:
score: 0
Accepted
time: 1ms
memory: 3852kb
input:
55 1097313795995 1065134439323 77916805395 1028593268635 305549054739 305549054720 301254054675 1099511627775 376450620179 1030774306715 375750245147 305951707931 304942973696 302332064531 304945074944 308132746011 306627064576 9196278016 13491278099 377931283227 374672235291 307730092819 3066270645...
output:
59
result:
ok 1 number(s): "59"
Test #10:
score: 0
Accepted
time: 1ms
memory: 3828kb
input:
140 618955644536 618880146008 618956693368 206638591281 618954923376 618881194840 619835332946 624338984050 405244424 73492646960 628566235994 210935738169 69122164752 652800941950 632935669370 550158506048 770376204155 623249907056 551251581514 618879031632 761781682043 550024288320 624342589306 61...
output:
174
result:
ok 1 number(s): "174"
Test #11:
score: 0
Accepted
time: 1ms
memory: 3776kb
input:
98 276234289538 276435628434 280525066271 426776261023 1097162807743 1097363685375 1087951250 859273990194 4309160351 864646910399 860553736626 276234293650 495327959007 864642715711 280525062159 4304961551 5378719759 348204339231 280529260959 1097364142527 280730595743 495529292191 1010893910463 10...
output:
110
result:
ok 1 number(s): "110"
Test #12:
score: 0
Accepted
time: 1ms
memory: 3744kb
input:
68 394201661537 549394440821 549394178661 1099503239159 488557772900 145090412581 144956194852 462787969060 325347967008 531641925749 462922186789 282532511777 549411354231 549680178807 325482184737 1099234144247 1099503103607 76235669600 548687389284 532212367477 256625344612 548821869173 549680314...
output:
68
result:
ok 1 number(s): "68"
Test #13:
score: 0
Accepted
time: 1ms
memory: 3748kb
input:
54 514313778046 514313813886 81942544928 497669898095 494448209774 357005026154 512703000431 496058917759 496596025198 514850780015 219536687652 13155959328 515387686783 8860467744 82093548392 13306954272 513239835519 497669862255 511629091694 515396075519 9011462688 512702964591 2097664 51538765094...
output:
54
result:
ok 1 number(s): "54"
Test #14:
score: 0
Accepted
time: 1ms
memory: 3976kb
input:
81 69795316278 7523011620 901144743607 275951648773 1073741828 621967642166 5372903428 71943327286 626266803766 344673223223 351120395831 540133691007 1090124320311 1090158005887 540100038327 351128829879 282400918565 896845549111 351154114303 540133723903 346821234231 348972384823 1090166407039 322...
output:
81
result:
ok 1 number(s): "81"
Test #15:
score: 0
Accepted
time: 0ms
memory: 3740kb
input:
44 5411176842 31453621226 5671225632 5411185610 5679614378 5671234400 856154451946 4841930890 5679876523 31453883371 858319044587 5940838656 5679885291 6217935851 832544784362 6217664938 832545046507 6217927083 5679623146 6217673706 5949236170 31991933931 858318782442 5402796864 7843953642 319916717...
output:
58
result:
ok 1 number(s): "58"
Test #16:
score: 0
Accepted
time: 1ms
memory: 3672kb
input:
77 481034223583 480413171607 1073807361 37616164743 443973091295 37614586113 205526744983 1030790053855 989031301087 31576366983 1074791938 480967081879 169018994451 338271866627 475782164315 164321902487 439274942299 1108348674 481036320767 480479784795 443905421075 306462265091 480412643091 342970...
output:
88
result:
ok 1 number(s): "88"
Test #17:
score: 0
Accepted
time: 1ms
memory: 3732kb
input:
82 272174463709 17246986261 18359263381 91642145429 267745274005 113252276425 547052501727 17179877396 274720403221 134592899733 821949151965 115802410369 684367587989 229089487509 113113860097 115798215937 3863741825 91637950997 409605159647 503963331095 229085293077 132978093333 1179385985 8734717...
output:
122
result:
ok 1 number(s): "122"
Test #18:
score: 0
Accepted
time: 1ms
memory: 3756kb
input:
54 2109536 921967046467 1099171741543 578354952800 921969147747 923111178111 575525625920 1219768932 1060550197119 1059408166755 991746702182 853230791490 923043938151 575525879808 575525617664 647089106497 923041836871 0 3902024260 854305581894 1060482957159 991813942142 579427641924 2829335136 142...
output:
56
result:
ok 1 number(s): "56"
Test #19:
score: 0
Accepted
time: 1ms
memory: 3616kb
input:
112 1099477022463 756484767267 789981003447 790140810943 22758818854 774948617763 756451505707 583822859966 584091426494 756485062187 760209286151 18388354082 573085146662 536892962 779210028583 22683321382 22683321350 789905800895 34033129142 583713806014 572514698246 33957631670 572439200806 77894...
output:
166
result:
ok 1 number(s): "166"
Test #20:
score: 0
Accepted
time: 0ms
memory: 3756kb
input:
35 941452556157 627065233440 907084428069 907080233248 941452687359 1099494848511 958767560703 907080365490 924399433655 901980959269 902785216544 1099494717309 901980960309 907084429109 958767429501 1047811716917 906271782192 1065126590261 902789412405 906275977013 901976765488 902789411365 9070802...
output:
35
result:
ok 1 number(s): "35"
Test #21:
score: 0
Accepted
time: 1ms
memory: 3736kb
input:
73 1099243190263 479683662551 470890992133 1029382787863 329152352773 141738639360 36523999744 141738659844 1029381715735 1099243181047 329152332289 54274314757 54274294273 0 549487376119 416616677376 470890992151 549420192311 178262659588 1029449962455 416616697860 292628332545 1020657292055 20484 ...
output:
75
result:
ok 1 number(s): "75"
Test #22:
score: 0
Accepted
time: 1ms
memory: 3724kb
input:
60 126720696480 40819253408 813920904114 1090787437562 728664138658 539305993192 728018191234 41364512928 286880 728019461042 814020322210 178258183040 262144 539851252712 728118879138 728120124338 1090921660415 1089847392255 1090787438587 40819228800 178803467168 814566827955 1089713170427 81456682...
output:
62
result:
ok 1 number(s): "62"
Test #23:
score: 0
Accepted
time: 1ms
memory: 3984kb
input:
188 632311943094 147138318536 649492156292 909358280503 237602068168 651501194752 9665777664 770858164044 790047481544 77312033330 151701820488 632169336498 787895770696 805285044222 807294082682 651643834244 701995555912 376102151731 1082331414527 649349549696 736422436040 772867235400 736565042636...
output:
306
result:
ok 1 number(s): "306"
Test #24:
score: 0
Accepted
time: 1ms
memory: 3824kb
input:
46 129997256715 78407313819 1092078581803 1040475761083 8593088515 1040479988155 78403086747 1099477925375 1094243367419 1094213711979 8590991362 1092065703979 69796366347 1099511496703 1040463210539 1040471861291 1094230489595 1099469274623 78384211978 1040488638907 3145731 78390536203 109422658980...
output:
46
result:
ok 1 number(s): "46"
Test #25:
score: 0
Accepted
time: 0ms
memory: 4020kb
input:
85 497140360702 77645758816 77780107750 217387516390 409074525691 357524431330 492299928034 409066136035 543841632739 357524562406 357532820986 409074656767 404234355175 82612019686 492174099832 78182637824 548673675751 497131839970 268435712 77578633216 353103570296 497131971046 222085079392 352692...
output:
99
result:
ok 1 number(s): "99"
Test #26:
score: 0
Accepted
time: 0ms
memory: 3740kb
input:
48 326495241995 330795507599 334016733071 274886350211 292135556483 1030657867759 8425473 327338874767 331634892687 1099511627775 309246072587 316763332491 480885014479 334856118159 326495295371 475749611471 326499489679 292135503107 334872895407 329720715151 326495278859 274886296835 8388609 343681...
output:
48
result:
ok 1 number(s): "48"
Test #27:
score: 0
Accepted
time: 1ms
memory: 3732kb
input:
72 41547483650 1007007095631 36042459651 35975070209 1099478072219 50170976838 1099477015451 41547221504 1013585861455 1099460008579 1099511626719 1084291304067 1099493563079 1006973541131 998316179969 36042197505 1092914830287 34901328384 998349996615 1092914797255 41581038150 1099460041611 9983833...
output:
80
result:
ok 1 number(s): "80"
Test #28:
score: 0
Accepted
time: 1ms
memory: 3728kb
input:
50 196608 10203109376 10219886612 1095149026559 1077969157373 1082264648957 978744990869 283468321793 1013238955157 8590200832 285097810965 559421788288 834836847745 0 8590397440 1081962626237 458752 559438827668 8589938688 9666236416 262144 869347589269 8590135296 1026425355479 834316752021 1030720...
output:
50
result:
ok 1 number(s): "50"
Test #29:
score: 0
Accepted
time: 1ms
memory: 3756kb
input:
98 990910277751 648537499794 652832471954 648537504402 927559379286 72582471680 567251847184 652681476882 552823465984 790271551923 1065149463543 1060854491383 1065151888383 622608300544 927559383894 923415411414 582888253714 622615109632 639947565200 790120561459 720327338291 576378693650 639947569...
output:
100
result:
ok 1 number(s): "100"
Test #30:
score: 0
Accepted
time: 1ms
memory: 3636kb
input:
51 551905919014 612343036974 618399793151 560500047910 596740160574 551906188326 820338606079 595280576046 594861104174 586686447150 586535149614 2149580838 614180175871 551903821824 595280576495 2147752960 612494065647 596740161023 618475290623 562379373622 596891189247 2149850150 596739891262 6124...
output:
51
result:
ok 1 number(s): "51"
Test #31:
score: 0
Accepted
time: 1ms
memory: 3748kb
input:
196 548915379187 414686890643 274949409299 274962022400 412518402563 1096523710327 518829603555 312528276099 862313483991 999882477255 450109852355 585204174423 549721734139 413341567499 2563 1068606422775 412539406867 516698929763 1068585418471 414670342835 450118535843 480187501491 450105920179 99...
output:
228
result:
ok 1 number(s): "228"
Test #32:
score: 0
Accepted
time: 1ms
memory: 3724kb
input:
60 138858799744 17525909122 718835005383 237832224707 567298668486 443819472834 224808648642 1062466994119 431056332739 138875745216 346072000 346038912 156038669954 499687604162 156194289603 774564462534 705811429318 156055615426 17542821506 512572506050 980829059015 362984384 362951296 17525942210...
output:
60
result:
ok 1 number(s): "60"
Test #33:
score: 0
Accepted
time: 676ms
memory: 19600kb
input:
9363 1043131227225 785298644298 785298644426 768051666240 776706678080 767112121448 1043062021200 208361622848 775366593858 1090376130011 1043131489633 768119360840 974411488610 1043130965088 768253582699 1099503239167 758184631616 775635029450 225541496128 768253578587 1064614976979 768116743232 10...
output:
16968
result:
ok 1 number(s): "16968"
Test #34:
score: 0
Accepted
time: 802ms
memory: 19620kb
input:
2896 279173926961 846780829747 1065092872063 1065126425211 927620366199 855102738993 838194958641 856445039411 962047213431 893302570615 1061829703291 1099452610167 1099452872567 1099511330423 829332394609 1062903445107 847049675313 927712900727 838461313907 927662307191 927628752499 829869265521 10...
output:
3242
result:
ok 1 number(s): "3242"
Test #35:
score: 0
Accepted
time: 743ms
memory: 19760kb
input:
5806 67747361867 62378589249 961779068895 135326051801 45131539529 136803495131 66740597835 135460142171 45130951761 62311185473 616496381011 66606447707 8623692800 131031084235 66606185539 66807901259 136472145371 66606376011 131102256219 135800007755 63385316355 66606316889 549730631391 6852872552...
output:
8219
result:
ok 1 number(s): "8219"
Test #36:
score: 0
Accepted
time: 592ms
memory: 20000kb
input:
20232 1090921430942 1090300673983 39763607956 1013926516116 877261247888 877292836244 881856279996 1090300870079 1099427347871 878236663262 403105709534 39736329620 51816432016 327495996816 950714161086 1096743387103 880750908816 1088119627676 602650722704 314918355348 538229407228 877247612304 1099...
output:
78774
result:
ok 1 number(s): "78774"
Test #37:
score: 0
Accepted
time: 737ms
memory: 19608kb
input:
5139 696332950770 146048129170 137975830656 715798715890 696324496880 137447708800 137978222720 137600800896 156249200882 137458194900 139203517616 146585524720 687743016432 147799251154 1099243191807 697415081462 198108289522 16 147659267250 704939662578 139067234514 2627584 713529613814 7072045869...
output:
15731
result:
ok 1 number(s): "15731"
Test #38:
score: 0
Accepted
time: 416ms
memory: 20632kb
input:
92751 19226398471 466168229634 53868441352 483721512849 285509390151 148732054336 157593374531 586281364234 2164697856 603640573192 449706954739 184645783526 2156015360 607930985768 320531836739 607792982312 569672118025 17339747592 423861595985 208863563587 706539785481 552081043208 278116935688 21...
output:
702105600
result:
ok 1 number(s): "702105600"
Test #39:
score: 0
Accepted
time: 496ms
memory: 20356kb
input:
50596 1044378063700 773679969876 786716949844 1052852714324 642835340636 787874543444 1044294160924 1095971208020 155338228820 164180358484 632363219284 924272270676 1080166981492 232748445524 918871186772 1062785898332 667783044436 1063658198868 228219975508 780509369692 155304681556 782638872404 7...
output:
1422915
result:
ok 1 number(s): "1422915"
Test #40:
score: 0
Accepted
time: 841ms
memory: 19748kb
input:
2479 292062167685 506461238943 1065067427487 504159745669 503086917271 498792075927 499597391495 1056561430495 1090442958751 1056485619423 506324924063 1065151332351 1090854584287 1056485899999 1056198563487 224450909829 1099158747103 1064933211871 1090846144415 481075208837 1099494801407 1099427165...
output:
3194
result:
ok 1 number(s): "3194"
Test #41:
score: 0
Accepted
time: 961ms
memory: 19608kb
input:
857 1027051462450 752177712950 747861251634 1027053525818 168040665610 1027057754046 1096113962943 1027055619898 1027055623994 1027055656506 1027055618874 1027057753662 1096248172478 1099469398015 752177716018 558882619426 713501966866 717817971506 752173522738 717813777970 1027053522486 75217770962...
output:
926
result:
ok 1 number(s): "926"
Test #42:
score: 0
Accepted
time: 977ms
memory: 19804kb
input:
729 1007882857455 1007857689511 1095132756967 964760019879 137439740036 964757889447 1008822363047 696323416453 1009233427455 1009187269607 962610373543 974562173863 1008956599279 1009225018343 550293479844 973485368231 964757824423 687196602757 1078020008935 1026480405487 974424892327 1009292147695...
output:
750
result:
ok 1 number(s): "750"
Test #43:
score: 0
Accepted
time: 899ms
memory: 19792kb
input:
911 250208975438 146054602818 171798773760 250207631946 249671838282 802852700014 249672105550 180414406658 1077730475855 137455730688 180397621248 249133918790 171815469058 1075448774255 249134082114 1082293878783 1099205312495 525690862158 250207822402 249135230538 137438969856 250208972362 249133...
output:
1038
result:
ok 1 number(s): "1038"
Test #44:
score: 0
Accepted
time: 812ms
memory: 19852kb
input:
3893 936457994275 1077164338019 1081421579043 1098697923435 1081782264675 1082298190707 1081790689151 1098706321387 386567962659 869919048227 1081413192499 1081690016571 1098706321407 592858316803 1082029753331 1082323363683 1077126581091 1081513862011 1081526448099 1081513864827 1098697917027 42951...
output:
5788
result:
ok 1 number(s): "5788"
Test #45:
score: 0
Accepted
time: 527ms
memory: 20440kb
input:
72623 18187436577 977070332837 275550443809 846069685159 835266189477 619483136800 567608234464 640897239849 852513151781 966331862577 121210329568 354026394145 940492970925 19002219108 1822301156 994250226595 930868272032 2089688033 827739741089 706484263871 362803026340 869624847333 361458227873 1...
output:
7545696
result:
ok 1 number(s): "7545696"
Test #46:
score: 0
Accepted
time: 489ms
memory: 20300kb
input:
52845 735652102216 177525506852 177374511368 173079544384 1010858354540 185989620588 173281011494 461067801902 177625122602 976464118054 737742177124 178682086186 731442332516 181476541028 10164633890 188337375074 176468542252 185762071296 735972180808 727196393832 735929189668 181896234342 73138230...
output:
1696968
result:
ok 1 number(s): "1696968"
Test #47:
score: 0
Accepted
time: 853ms
memory: 19808kb
input:
2139 1043609811930 1077699017608 1075620740058 138139402368 422681617280 1077667560333 1082063191003 138140002944 1043576257422 414091701128 491401112458 1099176083439 1043574160264 422682682250 414091641730 972438500234 1082063191002 491435719626 163578496 146192991104 1082264517582 1082262420428 9...
output:
2564
result:
ok 1 number(s): "2564"
Test #48:
score: 0
Accepted
time: 600ms
memory: 19776kb
input:
7569 1082305413019 933222261387 1073078467211 1082323368635 1081702082699 519060095115 532482997387 378093527177 1081978256283 521169610881 1082247347115 520901175427 1081710869151 1082036435851 1070657282187 1081995033227 1073145559947 1070960323211 1082247870639 1081977863115 929191477259 10822394...
output:
30380
result:
ok 1 number(s): "30380"
Test #49:
score: 0
Accepted
time: 811ms
memory: 19720kb
input:
2746 1030695612285 1030716649341 1065084780397 1377830724 1343227392 1030716588015 979156002668 415573771876 463763930988 35653120 437854981988 415842207332 480969224061 515328966509 296121200484 1099511623679 463759667052 1075840512 278101231168 326186493796 1065059282797 150092310084 463764123500 ...
output:
3239
result:
ok 1 number(s): "3239"
Test #50:
score: 0
Accepted
time: 552ms
memory: 20328kb
input:
69143 859396507649 1011997931519 937737744079 936658758849 1094677069519 886136294087 827133553857 930147749447 928200811737 862600588063 861509053279 954918662043 1076423456493 861494733897 886156188357 870093055119 869011712713 861426311233 957025275589 860352545809 938803130057 585675858121 86055...
output:
4791600
result:
ok 1 number(s): "4791600"
Test #51:
score: 0
Accepted
time: 791ms
memory: 19916kb
input:
4916 361507398830 547608192446 361775572102 533576623278 499013461134 548613219583 544386035646 361205146766 387245737006 395860837422 544314057919 543305327790 398285153454 541898122286 542168130815 542234764479 395867128878 545455583231 361473836046 533643764926 499281667263 543313229759 544381709...
output:
6577
result:
ok 1 number(s): "6577"
Test #52:
score: 0
Accepted
time: 969ms
memory: 19740kb
input:
941 721553976533 790273965265 1099511627229 697882223824 721542950101 790270831825 138311640080 721550830801 790262426845 721545067728 721538624733 721551342804 790264523997 721540869341 721538772176 721542966737 790270832085 721545063633 721551228373 721542966493 719390631120 996416683225 790273961...
output:
1027
result:
ok 1 number(s): "1027"
Test #53:
score: 0
Accepted
time: 443ms
memory: 20152kb
input:
51301 143911698630 15045772438 118713368710 49960200390 111155266694 247004151956 415047368912 8100003990 41890368726 15091130518 50532961478 256638714004 105777987780 119241796822 204028815574 15054308486 1098941185535 204639940310 273869031638 119250349254 754947312854 462255292550 668947229910 47...
output:
2559612
result:
ok 1 number(s): "2559612"
Test #54:
score: 0
Accepted
time: 782ms
memory: 19800kb
input:
4546 549487378427 1090650136 134341423418 961124761595 824491111418 132192891290 130045407770 136487858586 134341409722 95618289690 78505521466 549084723199 549344769023 132192925147 686243707899 136454304570 134307868986 136487894010 549478989823 26932371482 29113397530 411635284987 130011837370 26...
output:
5382
result:
ok 1 number(s): "5382"
Test #55:
score: 0
Accepted
time: 867ms
memory: 19888kb
input:
2005 434148738816 537239889664 1087566227306 502877914880 1086995773192 537239891808 292412729088 1086995801960 429849715968 292416398592 429861250816 1097364127743 1087566167912 296711890176 154987529216 502876735232 21837251840 429845382912 429859022080 1086995775336 292426352384 365440009984 1018...
output:
2820
result:
ok 1 number(s): "2820"
Test #56:
score: 0
Accepted
time: 846ms
memory: 19628kb
input:
2260 548596612478 234761707586 445518407998 441222916202 514236868714 149094402 445517094922 548682066943 445517883710 548596836430 548614924414 166344222762 445483540558 138158497802 1098420584315 514253645950 509941901418 445517883518 479962589566 170370754602 445248661610 445215105034 51423683622...
output:
2405
result:
ok 1 number(s): "2405"
Test #57:
score: 0
Accepted
time: 793ms
memory: 19772kb
input:
3345 1065120261989 1065151195111 1065084614607 1042504507716 1063994549572 1065055776583 1065082972005 1065082513221 1099443828727 1059683853637 1064005035333 1064054908741 84460986436 1046799017285 1046797968709 1065151201223 1064063296837 1099438581573 771919994948 71538311172 1099511463887 106400...
output:
3763
result:
ok 1 number(s): "3763"
Test #58:
score: 0
Accepted
time: 900ms
memory: 19732kb
input:
1468 3221356800 124234742767 20545184728 20409520128 123693675487 956955606015 20543869782 89130308360 123624399834 20544783176 89264665544 20544926556 20543869780 20544918358 20543738730 20410929416 123695707086 89264399322 123691512796 673990554607 647683881983 123624469455 20612365295 20401095168...
output:
2446
result:
ok 1 number(s): "2446"
Test #59:
score: 0
Accepted
time: 910ms
memory: 19744kb
input:
1622 497726949875 344169284080 345247236594 515311652351 33685504 1097280244223 345255608690 532489947643 275453624624 69295439922 344169283888 1099511627771 530359245307 515396074491 69291114800 547524431359 575668240 515328429567 495998978546 1062919981567 497995401715 16 513164692979 345247236592...
output:
1901
result:
ok 1 number(s): "1901"
Test #60:
score: 0
Accepted
time: 616ms
memory: 19988kb
input:
46202 646410125400 98672820681 223880134744 228438786376 271278924249 642912043080 88076959961 651630985416 155424325840 274755993816 818330225113 642903162944 208326902209 644246814856 781701366216 788685078985 638365925568 652715182537 230318358984 638356488384 717260276160 274790597081 2276513467...
output:
579600
result:
ok 1 number(s): "579600"
Test #61:
score: 0
Accepted
time: 965ms
memory: 19880kb
input:
623 333608342070 333608342078 1090615464702 58595627046 58595693094 402329918062 333465145894 403424639742 333608276534 57983254562 23622324226 1090653256446 58520649766 23622320130 57983258658 333465670182 333473403426 1090883902206 58596217398 58520130086 333473927218 953159471870 1089524683518 10...
output:
633
result:
ok 1 number(s): "633"
Test #62:
score: 0
Accepted
time: 945ms
memory: 19856kb
input:
812 675035634746 86490764346 90752173104 675035633722 120280072240 674903512114 953480830522 951333576254 16793616 125114139704 678536044094 674901415482 90781667384 950855685694 674903512122 1090920578751 675314555962 90785861688 678256860734 1090921168447 953137389118 124608598066 678603152954 125...
output:
851
result:
ok 1 number(s): "851"
Test #63:
score: 0
Accepted
time: 459ms
memory: 20304kb
input:
74932 24452244708 670324600437 157086524980 93168037616 11040966244 69079731960 139873651748 8879113908 137708504624 189281954916 262823306992 53973790268 26073736804 409967355891 189301368572 33134438115 670391723893 67603245038 67451954930 53957305956 32777922298 606663159784 124947621625 64296341...
output:
35398080
result:
ok 1 number(s): "35398080"
Test #64:
score: 0
Accepted
time: 741ms
memory: 19828kb
input:
7890 541698390101 477277021905 1024848686165 541701537365 1057097610865 1080716819541 1029181505245 1005553541201 421050015760 475130621565 475092840021 1074273273877 477274009341 1091458563709 455411851284 541697339005 545997586173 545993522813 1096827240055 548145069693 455781217365 1029181537917 ...
output:
11762
result:
ok 1 number(s): "11762"
Test #65:
score: 0
Accepted
time: 531ms
memory: 20444kb
input:
46127 1098399047675 1093551477671 971143119462 792902138819 1060818121727 550102123270 1042011903911 146375344643 859465712483 1084960443298 1009802770423 1007650521827 990471130786 1026983689207 962209960867 996636246754 1090362735599 724182649414 1042028617647 1090367968175 964702489319 6875422909...
output:
602544
result:
ok 1 number(s): "602544"
Test #66:
score: 0
Accepted
time: 476ms
memory: 20120kb
input:
36298 811949893796 1064346418159 1053507201509 138646913092 796179315591 807654402500 1062467354037 813089696181 791548799383 1062194720149 1083606579685 1053607869911 1097296951703 761551141309 1053603674527 756110076076 1062198852039 810938153967 1049309753741 770946448823 757139505605 77862929447...
output:
226626
result:
ok 1 number(s): "226626"
Test #67:
score: 0
Accepted
time: 856ms
memory: 19828kb
input:
1531 663892445963 939844098763 655302508675 1077828901839 105546565634 1099438218191 939844094282 34661761024 938770221643 664966256907 656376254603 656376121419 664966037504 105546563595 664966191490 939844096011 938770352331 114136631627 938770352715 930163638400 939844094026 939844093955 93877035...
output:
2042
result:
ok 1 number(s): "2042"
Test #68:
score: 0
Accepted
time: 426ms
memory: 20584kb
input:
88175 983036347017 652914884624 810754937025 792971108424 707135679421 981945303384 574566601748 25348968458 711899349268 106917720634 673852879388 741427651354 707981119764 776398353200 586808484425 791423222672 21018374794 3766674008 326962905240 124026266251 708141654043 777237797246 277638291547...
output:
352382976
result:
ok 1 number(s): "352382976"
Test #69:
score: 0
Accepted
time: 862ms
memory: 19788kb
input:
1371 60814529939 128997274899 683621168639 43085205762 129569862931 60273661203 335691068791 43088089090 112387888563 60816831863 60810532115 1099243143167 335688447287 546266134007 1099511592959 954204108279 128995176707 60139373843 954220885495 42959508753 1098437834231 1098068735479 42959372545 6...
output:
1795
result:
ok 1 number(s): "1795"
Test #70:
score: 0
Accepted
time: 542ms
memory: 20000kb
input:
13315 407559469432 319438456889 405411789117 371047069756 388225091641 362390132796 371045361725 542846539964 130529556733 412274916222 371045845032 336687306809 336685582396 130529556724 319505582141 96169809968 69256349712 545023588863 1099208260607 407709876158 10267838521 304475461688 7784646866...
output:
86482
result:
ok 1 number(s): "86482"
Test #71:
score: 0
Accepted
time: 711ms
memory: 19844kb
input:
5275 989586713593 696326998393 706023180665 993865428991 991650312185 716762967545 751123229691 714614163835 1026228678139 990634241531 704916146296 704915851376 989567314811 698510920187 4194400 989721456639 687736810363 991649787899 988417289721 713542486897 713506868089 713507654011 704949307763 ...
output:
8520
result:
ok 1 number(s): "8520"
Test #72:
score: 0
Accepted
time: 964ms
memory: 19820kb
input:
686 1099511595007 799711177072 819038596464 802933259600 817964789104 765074610512 800784988528 1077950627194 799711173968 800784985424 765049440512 820248132978 1099444387839 799400790336 765041056080 820252589434 818065522000 799669225808 1099421023742 1095130512766 824543116798 818099076470 82025...
output:
743
result:
ok 1 number(s): "743"
Test #73:
score: 0
Accepted
time: 899ms
memory: 19632kb
input:
1320 1060291728893 346018337977 1056969610681 904498271385 1060258177017 361050689681 1033280279993 1060845387773 483457258905 1099509520383 507079578009 352187859089 1095205126143 1039655522745 1059184434681 1033213072793 1095205115903 1060191065531 489899709881 492047226297 1059050182649 104180300...
output:
1407
result:
ok 1 number(s): "1407"
Test #74:
score: 0
Accepted
time: 751ms
memory: 19628kb
input:
3929 1081752943357 1081752894207 360194981629 84159444725 1081750829813 79591651969 83903527425 10737424897 944313974779 84228651521 75301075457 84176221905 84246477541 83976993457 360198127349 85051783813 84226554545 79881253605 1081750535925 1081752910581 531993673469 1099503189751 8724288001 9443...
output:
5523
result:
ok 1 number(s): "5523"
Test #75:
score: -100
Time Limit Exceeded
input:
329 1099511103423 571768796174 549755814912 573951931919 567473746944 1024 571770876942 567473812482 848838226959 573918376974 918971446959 567473603584 566937916418 1021106943663 1089847918511 567473763338 567473734656 1090921658287 850247775791 573952194063 1055487655855 567473808384 573926765614 ...
output:
334