QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#298104 | #7895. Graph Partitioning 2 | ucup-team180# | AC ✓ | 949ms | 82484kb | C++23 | 43.8kb | 2024-01-05 17:44:14 | 2024-01-05 17:44:14 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
using ull = unsigned long long;
typedef pair<ll, ll> pll;
typedef vector<ll> vll;
typedef vector<pll> vpll;
template <class T> using pqmin = priority_queue<T, vector<T>, greater<T>>;
template <class T> using pqmax = priority_queue<T>;
const ll inf = LLONG_MAX / 3;
const ll dx[] = {0, 1, 0, -1, 1, -1, 1, -1};
const ll dy[] = {1, 0, -1, 0, 1, 1, -1, -1};
#define mp make_pair
#define pb push_back
#define eb emplace_back
#define fi first
#define se second
#define all(x) x.begin(), x.end()
#define si(x) ll(x.size())
#define rep(i, n) for(ll i = 0; i < n; i++)
#define per(i, n) for(ll i = n - 1; i >= 0; i--)
#define rng(i, l, r) for(ll i = l; i < r; i++)
#define gnr(i, l, r) for(ll i = r - 1; i >= l; i--)
#define fore(i, a) for(auto &&i : a)
#define fore2(a, b, v) for(auto &&[a, b] : v)
#define fore3(a, b, c, v) for(auto &&[a, b, c] : v)
template <class T> bool chmin(T &a, const T &b) {
if(a <= b) return 0;
a = b;
return 1;
}
template <class T> bool chmax(T &a, const T &b) {
if(a >= b) return 0;
a = b;
return 1;
}
template <class T, class U> bool chmin(T &a, const U &b) { return chmin(a, (T)b); }
template <class T, class U> bool chmax(T &a, const U &b) { return chmax(a, (T)b); }
#define LL(...) \
ll __VA_ARGS__; \
in(__VA_ARGS__)
#define STR(...) \
string __VA_ARGS__; \
in(__VA_ARGS__)
#define CHR(...) \
char __VA_ARGS__; \
in(__VA_ARGS__)
#define vec(type, name, ...) vector<type> name(__VA_ARGS__)
#define VEC(type, name, size) \
vector<type> name(size); \
in(name)
#define VLL(name, size) \
vector<ll> name(size); \
in(name)
#define vv(type, name, h, ...) vector<vector<type>> name(h, vector<type>(__VA_ARGS__))
#define VV(type, name, h, w) \
vector<vector<type>> name(h, vector<type>(w)); \
in(name)
#define vvv(type, name, h, w, ...) vector<vector<vector<type>>> name(h, vector<vector<type>>(w, vector<type>(__VA_ARGS__)))
#define SUM(...) accumulate(all(__VA_ARGS__), 0LL)
template <class T> auto min(const T &a) { return *min_element(all(a)); }
template <class T> auto max(const T &a) { return *max_element(all(a)); }
template <class T, class F = less<>> void sor(T &a, F b = F{}) { sort(all(a), b); }
template <class T> void uniq(T &a) {
sor(a);
a.erase(unique(all(a)), end(a));
}
void outb(bool x) { cout << (x ? "Yes" : "No") << "\n"; }
ll max(int x, ll y) { return max((ll)x, y); }
ll max(ll x, int y) { return max(x, (ll)y); }
int min(int x, ll y) { return min((ll)x, y); }
int min(ll x, int y) { return min(x, (ll)y); }
#define lb(c, x) distance((c).begin(), lower_bound(all(c), (x)))
#define lbg(c, x) distance((c).begin(), lower_bound(all(c), (x), greater{}))
#define ub(c, x) distance((c).begin(), upper_bound(all(c), (x)))
#define ubg(c, x) distance((c).begin(), upper_bound(all(c), (x), greater{}))
ll gcd(ll a, ll b) { return (b ? gcd(b, a % b) : a); }
vector<pll> factor(ull x) {
vector<pll> ans;
for(ull i = 2; i * i <= x; i++)
if(x % i == 0) {
ans.push_back({i, 1});
while((x /= i) % i == 0) ans.back().second++;
}
if(x != 1) ans.push_back({x, 1});
return ans;
}
vector<ll> divisor(ull x) {
vector<ll> ans;
for(ull i = 1; i * i <= x; i++)
if(x % i == 0) ans.push_back(i);
per(i, ans.size() - (ans.back() * ans.back() == x)) ans.push_back(x / ans[i]);
return ans;
}
vll prime_table(ll n) {
vec(ll, isp, n + 1, 1);
vll res;
rng(i, 2, n + 1) if(isp[i]) {
res.pb(i);
for(ll j = i * i; j <= n; j += i) isp[j] = 0;
}
return res;
}
template <class T, class S> pair<T, S> operator-(const pair<T, S> &x) { return pair<T, S>(-x.first, -x.second); }
template <class T, class S> pair<T, S> operator-(const pair<T, S> &x, const pair<T, S> &y) { return pair<T, S>(x.fi - y.fi, x.se - y.se); }
template <class T, class S> pair<T, S> operator+(const pair<T, S> &x, const pair<T, S> &y) { return pair<T, S>(x.fi + y.fi, x.se + y.se); }
template <class T> pair<T, T> operator&(const pair<T, T> &l, const pair<T, T> &r) { return pair<T, T>(max(l.fi, r.fi), min(l.se, r.se)); }
template <class T, class S> pair<T, S> operator+=(pair<T, S> &l, const pair<T, S> &r) { return l = l + r; }
template <class T, class S> pair<T, S> operator-=(pair<T, S> &l, const pair<T, S> &r) { return l = l - r; }
template <class T> bool intersect(const pair<T, T> &l, const pair<T, T> &r) { return (l.se < r.se ? r.fi < l.se : l.fi < r.se); }
template <class T> vector<T> &operator++(vector<T> &v) {
fore(e, v) e++;
return v;
}
template <class T> vector<T> operator++(vector<T> &v, int) {
auto res = v;
fore(e, v) e++;
return res;
}
template <class T> vector<T> &operator--(vector<T> &v) {
fore(e, v) e--;
return v;
}
template <class T> vector<T> operator--(vector<T> &v, int) {
auto res = v;
fore(e, v) e--;
return res;
}
template <class T> vector<T> &operator+=(vector<T> &l, const vector<T> &r) {
fore(e, r) l.eb(e);
return l;
}
template <class... Ts> void in(Ts &...t);
[[maybe_unused]] void print() {}
template <class T, class... Ts> void print(const T &t, const Ts &...ts);
template <class... Ts> void out(const Ts &...ts) {
print(ts...);
cout << '\n';
}
namespace IO {
#define VOID(a) decltype(void(a))
struct S {
S() {
cin.tie(nullptr)->sync_with_stdio(0);
fixed(cout).precision(12);
}
} S;
template <int I> struct P : P<I - 1> {};
template <> struct P<0> {};
template <class T> void i(T &t) { i(t, P<3>{}); }
void i(vector<bool>::reference t, P<3>) {
int a;
i(a);
t = a;
}
template <class T> auto i(T &t, P<2>) -> VOID(cin >> t) { cin >> t; }
template <class T> auto i(T &t, P<1>) -> VOID(begin(t)) {
for(auto &&x : t) i(x);
}
template <class T, size_t... idx> void ituple(T &t, index_sequence<idx...>) { in(get<idx>(t)...); }
template <class T> auto i(T &t, P<0>) -> VOID(tuple_size<T>{}) { ituple(t, make_index_sequence<tuple_size<T>::value>{}); }
template <class T> void o(const T &t) { o(t, P<4>{}); }
template <size_t N> void o(const char (&t)[N], P<4>) { cout << t; }
template <class T, size_t N> void o(const T (&t)[N], P<3>) {
o(t[0]);
for(size_t i = 1; i < N; i++) {
o(' ');
o(t[i]);
}
}
template <class T> auto o(const T &t, P<2>) -> VOID(cout << t) { cout << t; }
template <class T> auto o(const T &t, P<1>) -> VOID(begin(t)) {
bool first = 1;
for(auto &&x : t) {
if(first)
first = 0;
else
o(' ');
o(x);
}
}
template <class T, size_t... idx> void otuple(const T &t, index_sequence<idx...>) { print(get<idx>(t)...); }
template <class T> auto o(T &t, P<0>) -> VOID(tuple_size<T>{}) { otuple(t, make_index_sequence<tuple_size<T>::value>{}); }
#undef VOID
} // namespace IO
#define unpack(a) \
(void)initializer_list<int> { (a, 0)... }
template <class... Ts> void in(Ts &...t) { unpack(IO::i(t)); }
template <class T, class... Ts> void print(const T &t, const Ts &...ts) {
IO::o(t);
unpack(IO::o((cout << ' ', ts)));
}
#undef unpack
#ifdef _MSC_VER
#include <intrin.h>
#endif
namespace atcoder {
namespace internal {
int ceil_pow2(int n) {
int x = 0;
while((1U << x) < (unsigned int)(n)) x++;
return x;
}
constexpr int bsf_constexpr(unsigned int n) {
int x = 0;
while(!(n & (1 << x))) x++;
return x;
}
int bsf(unsigned int n) {
#ifdef _MSC_VER
unsigned long index;
_BitScanForward(&index, n);
return index;
#else
return __builtin_ctz(n);
#endif
}
} // namespace internal
} // namespace atcoder
#include <cassert>
#include <numeric>
#include <type_traits>
#ifdef _MSC_VER
#include <intrin.h>
#endif
#include <utility>
#ifdef _MSC_VER
#include <intrin.h>
#endif
namespace atcoder {
namespace internal {
constexpr long long safe_mod(long long x, long long m) {
x %= m;
if(x < 0) x += m;
return x;
}
struct barrett {
unsigned int _m;
unsigned long long im;
explicit barrett(unsigned int m) : _m(m), im((unsigned long long)(-1) / m + 1) {}
unsigned int umod() const { return _m; }
unsigned int mul(unsigned int a, unsigned int b) const {
unsigned long long z = a;
z *= b;
#ifdef _MSC_VER
unsigned long long x;
_umul128(z, im, &x);
#else
unsigned long long x = (unsigned long long)(((unsigned __int128)(z)*im) >> 64);
#endif
unsigned int v = (unsigned int)(z - x * _m);
if(_m <= v) v += _m;
return v;
}
};
constexpr long long pow_mod_constexpr(long long x, long long n, int m) {
if(m == 1) return 0;
unsigned int _m = (unsigned int)(m);
unsigned long long r = 1;
unsigned long long y = safe_mod(x, m);
while(n) {
if(n & 1) r = (r * y) % _m;
y = (y * y) % _m;
n >>= 1;
}
return r;
}
constexpr bool is_prime_constexpr(int n) {
if(n <= 1) return false;
if(n == 2 || n == 7 || n == 61) return true;
if(n % 2 == 0) return false;
long long d = n - 1;
while(d % 2 == 0) d /= 2;
constexpr long long bases[3] = {2, 7, 61};
for(long long a : bases) {
long long t = d;
long long y = pow_mod_constexpr(a, t, n);
while(t != n - 1 && y != 1 && y != n - 1) {
y = y * y % n;
t <<= 1;
}
if(y != n - 1 && t % 2 == 0) { return false; }
}
return true;
}
template <int n> constexpr bool is_prime = is_prime_constexpr(n);
constexpr std::pair<long long, long long> inv_gcd(long long a, long long b) {
a = safe_mod(a, b);
if(a == 0) return {b, 0};
long long s = b, t = a;
long long m0 = 0, m1 = 1;
while(t) {
long long u = s / t;
s -= t * u;
m0 -= m1 * u; // |m1 * u| <= |m1| * s <= b
auto tmp = s;
s = t;
t = tmp;
tmp = m0;
m0 = m1;
m1 = tmp;
}
if(m0 < 0) m0 += b / s;
return {s, m0};
}
constexpr int primitive_root_constexpr(int m) {
if(m == 2) return 1;
if(m == 167772161) return 3;
if(m == 469762049) return 3;
if(m == 754974721) return 11;
if(m == 998244353) return 3;
int divs[20] = {};
divs[0] = 2;
int cnt = 1;
int x = (m - 1) / 2;
while(x % 2 == 0) x /= 2;
for(int i = 3; (long long)(i)*i <= x; i += 2) {
if(x % i == 0) {
divs[cnt++] = i;
while(x % i == 0) { x /= i; }
}
}
if(x > 1) { divs[cnt++] = x; }
for(int g = 2;; g++) {
bool ok = true;
for(int i = 0; i < cnt; i++) {
if(pow_mod_constexpr(g, (m - 1) / divs[i], m) == 1) {
ok = false;
break;
}
}
if(ok) return g;
}
}
template <int m> constexpr int primitive_root = primitive_root_constexpr(m);
unsigned long long floor_sum_unsigned(unsigned long long n, unsigned long long m, unsigned long long a, unsigned long long b) {
unsigned long long ans = 0;
while(true) {
if(a >= m) {
ans += n * (n - 1) / 2 * (a / m);
a %= m;
}
if(b >= m) {
ans += n * (b / m);
b %= m;
}
unsigned long long y_max = a * n + b;
if(y_max < m) break;
n = (unsigned long long)(y_max / m);
b = (unsigned long long)(y_max % m);
std::swap(m, a);
}
return ans;
}
} // namespace internal
} // namespace atcoder
#include <cassert>
#include <numeric>
#include <type_traits>
namespace atcoder {
namespace internal {
#ifndef _MSC_VER
template <class T>
using is_signed_int128 =
typename std::conditional<std::is_same<T, __int128_t>::value || std::is_same<T, __int128>::value, std::true_type, std::false_type>::type;
template <class T>
using is_unsigned_int128 =
typename std::conditional<std::is_same<T, __uint128_t>::value || std::is_same<T, unsigned __int128>::value, std::true_type, std::false_type>::type;
template <class T> using make_unsigned_int128 = typename std::conditional<std::is_same<T, __int128_t>::value, __uint128_t, unsigned __int128>;
template <class T>
using is_integral =
typename std::conditional<std::is_integral<T>::value || is_signed_int128<T>::value || is_unsigned_int128<T>::value, std::true_type, std::false_type>::type;
template <class T>
using is_signed_int =
typename std::conditional<(is_integral<T>::value && std::is_signed<T>::value) || is_signed_int128<T>::value, std::true_type, std::false_type>::type;
template <class T>
using is_unsigned_int =
typename std::conditional<(is_integral<T>::value && std::is_unsigned<T>::value) || is_unsigned_int128<T>::value, std::true_type, std::false_type>::type;
template <class T>
using to_unsigned = typename std::conditional<is_signed_int128<T>::value, make_unsigned_int128<T>,
typename std::conditional<std::is_signed<T>::value, std::make_unsigned<T>, std::common_type<T>>::type>::type;
#else
template <class T> using is_integral = typename std::is_integral<T>;
template <class T> using is_signed_int = typename std::conditional<is_integral<T>::value && std::is_signed<T>::value, std::true_type, std::false_type>::type;
template <class T>
using is_unsigned_int = typename std::conditional<is_integral<T>::value && std::is_unsigned<T>::value, std::true_type, std::false_type>::type;
template <class T> using to_unsigned = typename std::conditional<is_signed_int<T>::value, std::make_unsigned<T>, std::common_type<T>>::type;
#endif
template <class T> using is_signed_int_t = std::enable_if_t<is_signed_int<T>::value>;
template <class T> using is_unsigned_int_t = std::enable_if_t<is_unsigned_int<T>::value>;
template <class T> using to_unsigned_t = typename to_unsigned<T>::type;
} // namespace internal
} // namespace atcoder
namespace atcoder {
namespace internal {
struct modint_base {};
struct static_modint_base : modint_base {};
template <class T> using is_modint = std::is_base_of<modint_base, T>;
template <class T> using is_modint_t = std::enable_if_t<is_modint<T>::value>;
} // namespace internal
template <int m, std::enable_if_t<(1 <= m)> * = nullptr> struct static_modint : internal::static_modint_base {
using mint = static_modint;
public:
static constexpr int mod() { return m; }
static mint raw(int v) {
mint x;
x._v = v;
return x;
}
static_modint() : _v(0) {}
template <class T, internal::is_signed_int_t<T> * = nullptr> static_modint(T v) {
long long x = (long long)(v % (long long)(umod()));
if(x < 0) x += umod();
_v = (unsigned int)(x);
}
template <class T, internal::is_unsigned_int_t<T> * = nullptr> static_modint(T v) { _v = (unsigned int)(v % umod()); }
unsigned int val() const { return _v; }
mint &operator++() {
_v++;
if(_v == umod()) _v = 0;
return *this;
}
mint &operator--() {
if(_v == 0) _v = umod();
_v--;
return *this;
}
mint operator++(int) {
mint result = *this;
++*this;
return result;
}
mint operator--(int) {
mint result = *this;
--*this;
return result;
}
mint &operator+=(const mint &rhs) {
_v += rhs._v;
if(_v >= umod()) _v -= umod();
return *this;
}
mint &operator-=(const mint &rhs) {
_v -= rhs._v;
if(_v >= umod()) _v += umod();
return *this;
}
mint &operator*=(const mint &rhs) {
unsigned long long z = _v;
z *= rhs._v;
_v = (unsigned int)(z % umod());
return *this;
}
mint &operator/=(const mint &rhs) { return *this = *this * rhs.inv(); }
mint operator+() const { return *this; }
mint operator-() const { return mint() - *this; }
mint pow(long long n) const {
assert(0 <= n);
mint x = *this, r = 1;
while(n) {
if(n & 1) r *= x;
x *= x;
n >>= 1;
}
return r;
}
mint inv() const {
if(prime) {
assert(_v);
return pow(umod() - 2);
} else {
auto eg = internal::inv_gcd(_v, m);
assert(eg.first == 1);
return eg.second;
}
}
friend mint operator+(const mint &lhs, const mint &rhs) { return mint(lhs) += rhs; }
friend mint operator-(const mint &lhs, const mint &rhs) { return mint(lhs) -= rhs; }
friend mint operator*(const mint &lhs, const mint &rhs) { return mint(lhs) *= rhs; }
friend mint operator/(const mint &lhs, const mint &rhs) { return mint(lhs) /= rhs; }
friend bool operator==(const mint &lhs, const mint &rhs) { return lhs._v == rhs._v; }
friend bool operator!=(const mint &lhs, const mint &rhs) { return lhs._v != rhs._v; }
private:
unsigned int _v;
static constexpr unsigned int umod() { return m; }
static constexpr bool prime = internal::is_prime<m>;
};
template <int id> struct dynamic_modint : internal::modint_base {
using mint = dynamic_modint;
public:
static int mod() { return (int)(bt.umod()); }
static void set_mod(int m) {
assert(1 <= m);
bt = internal::barrett(m);
}
static mint raw(int v) {
mint x;
x._v = v;
return x;
}
dynamic_modint() : _v(0) {}
template <class T, internal::is_signed_int_t<T> * = nullptr> dynamic_modint(T v) {
long long x = (long long)(v % (long long)(mod()));
if(x < 0) x += mod();
_v = (unsigned int)(x);
}
template <class T, internal::is_unsigned_int_t<T> * = nullptr> dynamic_modint(T v) { _v = (unsigned int)(v % mod()); }
unsigned int val() const { return _v; }
mint &operator++() {
_v++;
if(_v == umod()) _v = 0;
return *this;
}
mint &operator--() {
if(_v == 0) _v = umod();
_v--;
return *this;
}
mint operator++(int) {
mint result = *this;
++*this;
return result;
}
mint operator--(int) {
mint result = *this;
--*this;
return result;
}
mint &operator+=(const mint &rhs) {
_v += rhs._v;
if(_v >= umod()) _v -= umod();
return *this;
}
mint &operator-=(const mint &rhs) {
_v += mod() - rhs._v;
if(_v >= umod()) _v -= umod();
return *this;
}
mint &operator*=(const mint &rhs) {
_v = bt.mul(_v, rhs._v);
return *this;
}
mint &operator/=(const mint &rhs) { return *this = *this * rhs.inv(); }
mint operator+() const { return *this; }
mint operator-() const { return mint() - *this; }
mint pow(long long n) const {
assert(0 <= n);
mint x = *this, r = 1;
while(n) {
if(n & 1) r *= x;
x *= x;
n >>= 1;
}
return r;
}
mint inv() const {
auto eg = internal::inv_gcd(_v, mod());
assert(eg.first == 1);
return eg.second;
}
friend mint operator+(const mint &lhs, const mint &rhs) { return mint(lhs) += rhs; }
friend mint operator-(const mint &lhs, const mint &rhs) { return mint(lhs) -= rhs; }
friend mint operator*(const mint &lhs, const mint &rhs) { return mint(lhs) *= rhs; }
friend mint operator/(const mint &lhs, const mint &rhs) { return mint(lhs) /= rhs; }
friend bool operator==(const mint &lhs, const mint &rhs) { return lhs._v == rhs._v; }
friend bool operator!=(const mint &lhs, const mint &rhs) { return lhs._v != rhs._v; }
private:
unsigned int _v;
static internal::barrett bt;
static unsigned int umod() { return bt.umod(); }
};
template <int id> internal::barrett dynamic_modint<id>::bt(998244353);
using modint998244353 = static_modint<998244353>;
using modint1000000007 = static_modint<1000000007>;
using modint = dynamic_modint<-1>;
namespace internal {
template <class T> using is_static_modint = std::is_base_of<internal::static_modint_base, T>;
template <class T> using is_static_modint_t = std::enable_if_t<is_static_modint<T>::value>;
template <class> struct is_dynamic_modint : public std::false_type {};
template <int id> struct is_dynamic_modint<dynamic_modint<id>> : public std::true_type {};
template <class T> using is_dynamic_modint_t = std::enable_if_t<is_dynamic_modint<T>::value>;
} // namespace internal
} // namespace atcoder
namespace atcoder {
namespace internal {
template <class mint, int g = internal::primitive_root<mint::mod()>, internal::is_static_modint_t<mint> * = nullptr> struct fft_info {
static constexpr int rank2 = bsf_constexpr(mint::mod() - 1);
std::array<mint, rank2 + 1> root; // root[i]^(2^i) == 1
std::array<mint, rank2 + 1> iroot; // root[i] * iroot[i] == 1
std::array<mint, std::max(0, rank2 - 2 + 1)> rate2;
std::array<mint, std::max(0, rank2 - 2 + 1)> irate2;
std::array<mint, std::max(0, rank2 - 3 + 1)> rate3;
std::array<mint, std::max(0, rank2 - 3 + 1)> irate3;
fft_info() {
root[rank2] = mint(g).pow((mint::mod() - 1) >> rank2);
iroot[rank2] = root[rank2].inv();
for(int i = rank2 - 1; i >= 0; i--) {
root[i] = root[i + 1] * root[i + 1];
iroot[i] = iroot[i + 1] * iroot[i + 1];
}
{
mint prod = 1, iprod = 1;
for(int i = 0; i <= rank2 - 2; i++) {
rate2[i] = root[i + 2] * prod;
irate2[i] = iroot[i + 2] * iprod;
prod *= iroot[i + 2];
iprod *= root[i + 2];
}
}
{
mint prod = 1, iprod = 1;
for(int i = 0; i <= rank2 - 3; i++) {
rate3[i] = root[i + 3] * prod;
irate3[i] = iroot[i + 3] * iprod;
prod *= iroot[i + 3];
iprod *= root[i + 3];
}
}
}
};
template <class mint, internal::is_static_modint_t<mint> * = nullptr> void butterfly(std::vector<mint> &a) {
int n = int(a.size());
int h = internal::ceil_pow2(n);
static const fft_info<mint> info;
int len = 0; // a[i, i+(n>>len), i+2*(n>>len), ..] is transformed
while(len < h) {
if(h - len == 1) {
int p = 1 << (h - len - 1);
mint rot = 1;
for(int s = 0; s < (1 << len); s++) {
int offset = s << (h - len);
for(int i = 0; i < p; i++) {
auto l = a[i + offset];
auto r = a[i + offset + p] * rot;
a[i + offset] = l + r;
a[i + offset + p] = l - r;
}
if(s + 1 != (1 << len)) rot *= info.rate2[bsf(~(unsigned int)(s))];
}
len++;
} else {
int p = 1 << (h - len - 2);
mint rot = 1, imag = info.root[2];
for(int s = 0; s < (1 << len); s++) {
mint rot2 = rot * rot;
mint rot3 = rot2 * rot;
int offset = s << (h - len);
for(int i = 0; i < p; i++) {
auto mod2 = 1ULL * mint::mod() * mint::mod();
auto a0 = 1ULL * a[i + offset].val();
auto a1 = 1ULL * a[i + offset + p].val() * rot.val();
auto a2 = 1ULL * a[i + offset + 2 * p].val() * rot2.val();
auto a3 = 1ULL * a[i + offset + 3 * p].val() * rot3.val();
auto a1na3imag = 1ULL * mint(a1 + mod2 - a3).val() * imag.val();
auto na2 = mod2 - a2;
a[i + offset] = a0 + a2 + a1 + a3;
a[i + offset + 1 * p] = a0 + a2 + (2 * mod2 - (a1 + a3));
a[i + offset + 2 * p] = a0 + na2 + a1na3imag;
a[i + offset + 3 * p] = a0 + na2 + (mod2 - a1na3imag);
}
if(s + 1 != (1 << len)) rot *= info.rate3[bsf(~(unsigned int)(s))];
}
len += 2;
}
}
}
template <class mint, internal::is_static_modint_t<mint> * = nullptr> void butterfly_inv(std::vector<mint> &a) {
int n = int(a.size());
int h = internal::ceil_pow2(n);
static const fft_info<mint> info;
int len = h; // a[i, i+(n>>len), i+2*(n>>len), ..] is transformed
while(len) {
if(len == 1) {
int p = 1 << (h - len);
mint irot = 1;
for(int s = 0; s < (1 << (len - 1)); s++) {
int offset = s << (h - len + 1);
for(int i = 0; i < p; i++) {
auto l = a[i + offset];
auto r = a[i + offset + p];
a[i + offset] = l + r;
a[i + offset + p] = (unsigned long long)(mint::mod() + l.val() - r.val()) * irot.val();
;
}
if(s + 1 != (1 << (len - 1))) irot *= info.irate2[bsf(~(unsigned int)(s))];
}
len--;
} else {
int p = 1 << (h - len);
mint irot = 1, iimag = info.iroot[2];
for(int s = 0; s < (1 << (len - 2)); s++) {
mint irot2 = irot * irot;
mint irot3 = irot2 * irot;
int offset = s << (h - len + 2);
for(int i = 0; i < p; i++) {
auto a0 = 1ULL * a[i + offset + 0 * p].val();
auto a1 = 1ULL * a[i + offset + 1 * p].val();
auto a2 = 1ULL * a[i + offset + 2 * p].val();
auto a3 = 1ULL * a[i + offset + 3 * p].val();
auto a2na3iimag = 1ULL * mint((mint::mod() + a2 - a3) * iimag.val()).val();
a[i + offset] = a0 + a1 + a2 + a3;
a[i + offset + 1 * p] = (a0 + (mint::mod() - a1) + a2na3iimag) * irot.val();
a[i + offset + 2 * p] = (a0 + a1 + (mint::mod() - a2) + (mint::mod() - a3)) * irot2.val();
a[i + offset + 3 * p] = (a0 + (mint::mod() - a1) + (mint::mod() - a2na3iimag)) * irot3.val();
}
if(s + 1 != (1 << (len - 2))) irot *= info.irate3[bsf(~(unsigned int)(s))];
}
len -= 2;
}
}
}
template <class mint, internal::is_static_modint_t<mint> * = nullptr>
std::vector<mint> convolution_naive(const std::vector<mint> &a, const std::vector<mint> &b) {
int n = int(a.size()), m = int(b.size());
std::vector<mint> ans(n + m - 1);
if(n < m) {
for(int j = 0; j < m; j++) {
for(int i = 0; i < n; i++) { ans[i + j] += a[i] * b[j]; }
}
} else {
for(int i = 0; i < n; i++) {
for(int j = 0; j < m; j++) { ans[i + j] += a[i] * b[j]; }
}
}
return ans;
}
template <class mint, internal::is_static_modint_t<mint> * = nullptr> std::vector<mint> convolution_fft(std::vector<mint> a, std::vector<mint> b) {
int n = int(a.size()), m = int(b.size());
int z = 1 << internal::ceil_pow2(n + m - 1);
a.resize(z);
internal::butterfly(a);
b.resize(z);
internal::butterfly(b);
for(int i = 0; i < z; i++) { a[i] *= b[i]; }
internal::butterfly_inv(a);
a.resize(n + m - 1);
mint iz = mint(z).inv();
for(int i = 0; i < n + m - 1; i++) a[i] *= iz;
return a;
}
} // namespace internal
template <class mint, internal::is_static_modint_t<mint> * = nullptr> std::vector<mint> convolution(std::vector<mint> &&a, std::vector<mint> &&b) {
int n = int(a.size()), m = int(b.size());
if(!n || !m) return {};
if(std::min(n, m) <= 60) return convolution_naive(a, b);
return internal::convolution_fft(a, b);
}
template <class mint, internal::is_static_modint_t<mint> * = nullptr> std::vector<mint> convolution(const std::vector<mint> &a, const std::vector<mint> &b) {
int n = int(a.size()), m = int(b.size());
if(!n || !m) return {};
if(std::min(n, m) <= 60) return convolution_naive(a, b);
return internal::convolution_fft(a, b);
}
template <unsigned int mod = 998244353, class T, std::enable_if_t<internal::is_integral<T>::value> * = nullptr>
std::vector<T> convolution(const std::vector<T> &a, const std::vector<T> &b) {
int n = int(a.size()), m = int(b.size());
if(!n || !m) return {};
using mint = static_modint<mod>;
std::vector<mint> a2(n), b2(m);
for(int i = 0; i < n; i++) { a2[i] = mint(a[i]); }
for(int i = 0; i < m; i++) { b2[i] = mint(b[i]); }
auto c2 = convolution(move(a2), move(b2));
std::vector<T> c(n + m - 1);
for(int i = 0; i < n + m - 1; i++) { c[i] = c2[i].val(); }
return c;
}
std::vector<long long> convolution_ll(const std::vector<long long> &a, const std::vector<long long> &b) {
int n = int(a.size()), m = int(b.size());
if(!n || !m) return {};
static constexpr unsigned long long MOD1 = 754974721; // 2^24
static constexpr unsigned long long MOD2 = 167772161; // 2^25
static constexpr unsigned long long MOD3 = 469762049; // 2^26
static constexpr unsigned long long M2M3 = MOD2 * MOD3;
static constexpr unsigned long long M1M3 = MOD1 * MOD3;
static constexpr unsigned long long M1M2 = MOD1 * MOD2;
static constexpr unsigned long long M1M2M3 = MOD1 * MOD2 * MOD3;
static constexpr unsigned long long i1 = internal::inv_gcd(MOD2 * MOD3, MOD1).second;
static constexpr unsigned long long i2 = internal::inv_gcd(MOD1 * MOD3, MOD2).second;
static constexpr unsigned long long i3 = internal::inv_gcd(MOD1 * MOD2, MOD3).second;
auto c1 = convolution<MOD1>(a, b);
auto c2 = convolution<MOD2>(a, b);
auto c3 = convolution<MOD3>(a, b);
std::vector<long long> c(n + m - 1);
for(int i = 0; i < n + m - 1; i++) {
unsigned long long x = 0;
x += (c1[i] * i1) % MOD1 * M2M3;
x += (c2[i] * i2) % MOD2 * M1M3;
x += (c3[i] * i3) % MOD3 * M1M2;
long long diff = c1[i] - internal::safe_mod((long long)(x), (long long)(MOD1));
if(diff < 0) diff += MOD1;
static constexpr unsigned long long offset[5] = {0, 0, M1M2M3, 2 * M1M2M3, 3 * M1M2M3};
x -= offset[diff % 5];
c[i] = x;
}
return c;
}
} // namespace atcoder
using namespace atcoder;
using mint = modint998244353;
using vmint = vector<mint>;
// combination mod prime
// https://youtu.be/8uowVvQ_-Mo?t=6002
// https://youtu.be/Tgd_zLfRZOQ?t=9928
struct modinv {
int n;
vector<mint> d;
modinv() : n(2), d({0, 1}) {}
mint operator()(int i) {
while(n <= i) d.push_back(-d[mint::mod() % n] * (mint::mod() / n)), ++n;
return d[i];
}
mint operator[](int i) const { return d[i]; }
} invs;
struct modfact {
int n;
vector<mint> d;
modfact() : n(2), d({1, 1}) {}
mint operator()(int i) {
while(n <= i) d.push_back(d.back() * n), ++n;
return d[i];
}
mint operator[](int i) const { return d[i]; }
} facts;
struct modfactinv {
int n;
vector<mint> d;
modfactinv() : n(2), d({1, 1}) {}
mint operator()(int i) {
while(n <= i) d.push_back(d.back() * invs(n)), ++n;
return d[i];
}
mint operator[](int i) const { return d[i]; }
} ifacts;
mint comb(int n, int k) {
if(n < k || k < 0) return 0;
return facts(n) * ifacts(k) * ifacts(n - k);
}
// https://nyaannyaan.github.io/library/hashmap/hashmap.hpp
namespace HashMapImpl {
using u32 = uint32_t;
using u64 = uint64_t;
template <typename Key, typename Data> struct HashMapBase;
template <typename Key, typename Data> struct itrB : iterator<bidirectional_iterator_tag, Data, ptrdiff_t, Data *, Data &> {
using base = iterator<bidirectional_iterator_tag, Data, ptrdiff_t, Data *, Data &>;
using ptr = typename base::pointer;
using ref = typename base::reference;
u32 i;
HashMapBase<Key, Data> *p;
explicit constexpr itrB() : i(0), p(nullptr) {}
explicit constexpr itrB(u32 _i, HashMapBase<Key, Data> *_p) : i(_i), p(_p) {}
explicit constexpr itrB(u32 _i, const HashMapBase<Key, Data> *_p) : i(_i), p(const_cast<HashMapBase<Key, Data> *>(_p)) {}
friend void swap(itrB &l, itrB &r) { swap(l.i, r.i), swap(l.p, r.p); }
friend bool operator==(const itrB &l, const itrB &r) { return l.i == r.i; }
friend bool operator!=(const itrB &l, const itrB &r) { return l.i != r.i; }
const ref operator*() const { return const_cast<const HashMapBase<Key, Data> *>(p)->data[i]; }
ref operator*() { return p->data[i]; }
ptr operator->() const { return &(p->data[i]); }
itrB &operator++() {
assert(i != p->cap && "itr::operator++()");
do {
i++;
if(i == p->cap) break;
if(p->flag[i] == true && p->dflag[i] == false) break;
} while(true);
return (*this);
}
itrB operator++(int) {
itrB it(*this);
++(*this);
return it;
}
itrB &operator--() {
do {
i--;
if(p->flag[i] == true && p->dflag[i] == false) break;
assert(i != 0 && "itr::operator--()");
} while(true);
return (*this);
}
itrB operator--(int) {
itrB it(*this);
--(*this);
return it;
}
};
template <typename Key, typename Data> struct HashMapBase {
using u32 = uint32_t;
using u64 = uint64_t;
using iterator = itrB<Key, Data>;
using itr = iterator;
protected:
template <typename K> inline u64 randomized(const K &key) const { return u64(key) ^ r; }
template <typename K, enable_if_t<is_same<K, Key>::value, nullptr_t> = nullptr, enable_if_t<is_integral<K>::value, nullptr_t> = nullptr>
inline u32 inner_hash(const K &key) const {
return (randomized(key) * 11995408973635179863ULL) >> shift;
}
template <typename K, enable_if_t<is_same<K, Key>::value, nullptr_t> = nullptr, enable_if_t<is_integral<decltype(K::first)>::value, nullptr_t> = nullptr,
enable_if_t<is_integral<decltype(K::second)>::value, nullptr_t> = nullptr>
inline u32 inner_hash(const K &key) const {
u64 a = randomized(key.first), b = randomized(key.second);
a *= 11995408973635179863ULL;
b *= 10150724397891781847ULL;
return (a + b) >> shift;
}
template <typename K, enable_if_t<is_same<K, Key>::value, nullptr_t> = nullptr,
enable_if_t<is_integral<typename K::value_type>::value, nullptr_t> = nullptr>
inline u32 inner_hash(const K &key) const {
static constexpr u64 mod = (1LL << 61) - 1;
static constexpr u64 base = 950699498548472943ULL;
u64 res = 0;
for(auto &elem : key) {
__uint128_t x = __uint128_t(res) * base + (randomized(elem) & mod);
res = (x & mod) + (x >> 61);
}
__uint128_t x = __uint128_t(res) * base;
res = (x & mod) + (x >> 61);
if(res >= mod) res -= mod;
return res >> (shift - 3);
}
template <typename D = Data, enable_if_t<is_same<D, Key>::value, nullptr_t> = nullptr> inline u32 hash(const D &dat) const { return inner_hash(dat); }
template <typename D = Data, enable_if_t<is_same<decltype(D::first), Key>::value, nullptr_t> = nullptr> inline u32 hash(const D &dat) const {
return inner_hash(dat.first);
}
template <typename D = Data, enable_if_t<is_same<D, Key>::value, nullptr_t> = nullptr> inline Key dtok(const D &dat) const { return dat; }
template <typename D = Data, enable_if_t<is_same<decltype(D::first), Key>::value, nullptr_t> = nullptr> inline Key dtok(const D &dat) const {
return dat.first;
}
void reallocate(u32 ncap) {
vector<Data> ndata(ncap);
vector<bool> nf(ncap);
shift = 64 - __lg(ncap);
for(u32 i = 0; i < cap; i++) {
if(flag[i] == true && dflag[i] == false) {
u32 h = hash(data[i]);
while(nf[h]) h = (h + 1) & (ncap - 1);
ndata[h] = move(data[i]);
nf[h] = true;
}
}
data.swap(ndata);
flag.swap(nf);
cap = ncap;
dflag.resize(cap);
fill(std::begin(dflag), std::end(dflag), false);
}
inline bool extend_rate(u32 x) const { return x * 2 >= cap; }
inline bool shrink_rate(u32 x) const { return HASHMAP_DEFAULT_SIZE < cap && x * 10 <= cap; }
inline void extend() { reallocate(cap << 1); }
inline void shrink() { reallocate(cap >> 1); }
public:
u32 cap, s;
vector<Data> data;
vector<bool> flag, dflag;
u32 shift;
static u64 r;
static constexpr uint32_t HASHMAP_DEFAULT_SIZE = 4;
explicit HashMapBase() : cap(HASHMAP_DEFAULT_SIZE), s(0), data(cap), flag(cap), dflag(cap), shift(64 - __lg(cap)) {}
itr begin() const {
u32 h = 0;
while(h != cap) {
if(flag[h] == true && dflag[h] == false) break;
h++;
}
return itr(h, this);
}
itr end() const { return itr(this->cap, this); }
friend itr begin(const HashMapBase &h) { return h.begin(); }
friend itr end(const HashMapBase &h) { return h.end(); }
itr find(const Key &key) const {
u32 h = inner_hash(key);
while(true) {
if(flag[h] == false) return this->end();
if(dtok(data[h]) == key) {
if(dflag[h] == true) return this->end();
return itr(h, this);
}
h = (h + 1) & (cap - 1);
}
}
bool contain(const Key &key) const { return find(key) != this->end(); }
itr insert(const Data &d) {
u32 h = hash(d);
while(true) {
if(flag[h] == false) {
if(extend_rate(s + 1)) {
extend();
h = hash(d);
continue;
}
data[h] = d;
flag[h] = true;
++s;
return itr(h, this);
}
if(dtok(data[h]) == dtok(d)) {
if(dflag[h] == true) {
data[h] = d;
dflag[h] = false;
++s;
}
return itr(h, this);
}
h = (h + 1) & (cap - 1);
}
}
// tips for speed up :
// if return value is unnecessary, make argument_2 false.
itr erase(itr it, bool get_next = true) {
if(it == this->end()) return this->end();
s--;
if(shrink_rate(s)) {
Data d = data[it.i];
shrink();
it = find(dtok(d));
}
int ni = (it.i + 1) & (cap - 1);
if(this->flag[ni]) {
this->dflag[it.i] = true;
} else {
this->flag[it.i] = false;
}
if(get_next) ++it;
return it;
}
itr erase(const Key &key) { return erase(find(key)); }
bool empty() const { return s == 0; }
int size() const { return s; }
void clear() {
fill(std::begin(flag), std::end(flag), false);
fill(std::begin(dflag), std::end(dflag), false);
s = 0;
}
void reserve(int n) {
if(n <= 0) return;
n = 1 << min(23, __lg(n) + 2);
if(cap < u32(n)) reallocate(n);
}
};
template <typename Key, typename Data>
uint64_t HashMapBase<Key, Data>::r = chrono::duration_cast<chrono::nanoseconds>(chrono::high_resolution_clock::now().time_since_epoch()).count();
} // namespace HashMapImpl
/**
* @brief Hash Map(base) (ハッシュマップ・基底クラス)
*/
template <typename Key, typename Val> struct HashMap : HashMapImpl::HashMapBase<Key, pair<Key, Val>> {
using base = typename HashMapImpl::HashMapBase<Key, pair<Key, Val>>;
using HashMapImpl::HashMapBase<Key, pair<Key, Val>>::HashMapBase;
using Data = pair<Key, Val>;
Val &operator[](const Key &k) {
typename base::u32 h = base::inner_hash(k);
while(true) {
if(base::flag[h] == false) {
if(base::extend_rate(base::s + 1)) {
base::extend();
h = base::hash(k);
continue;
}
base::data[h].first = k;
base::data[h].second = Val();
base::flag[h] = true;
++base::s;
return base::data[h].second;
}
if(base::data[h].first == k) {
if(base::dflag[h] == true) base::data[h].second = Val();
return base::data[h].second;
}
h = (h + 1) & (base::cap - 1);
}
}
typename base::itr emplace(const Key &key, const Val &val) { return base::insert(Data(key, val)); }
};
/*
* @brief ハッシュマップ(連想配列)
* @docs docs/hashmap/hashmap.md
**/
template <typename Key> struct HashSet : HashMapImpl::HashMapBase<Key, Key> {
using HashMapImpl::HashMapBase<Key, Key>::HashMapBase;
};
/*
* @brief ハッシュセット(集合)
* @docs docs/hashmap/hashset.md
**/
void solve() {
LL(n, k);
vv(ll, g, n);
rep(i, n - 1) {
ll a, b;
cin >> a >> b;
a--, b--;
g[a].pb(b);
g[b].pb(a);
}
auto dfs = [&](auto &&dfs, ll x, ll p, vector<pair<ll, mint>> &ret) -> void {
HashMap<ll, mint> dp;
dp[1] = 1;
fore(y, g[x]) if(y != p) {
vector<pair<ll, mint>> v;
HashMap<ll, mint> cop;
dfs(dfs, y, x, v);
fore2(a, val1, dp) fore2(b, val2, v) {
ll c = a + b;
if(c <= k + 1) cop[c] += val1 * val2;
}
swap(dp, cop);
}
if((dp[k + 1] + dp[k]).val() != 0) ret.eb(0, dp[k + 1] + dp[k]);
fore2(c, val, dp) {
if(c <= k) { ret.eb(c, val); }
}
};
vector<pair<ll, mint>> v;
dfs(dfs, 0, -1, v);
mint ans=0;
fore2(c,val,v)if(c==0){
ans=val;
}
out(ans.val());
}
int main() {
cin.tie(0);
ios::sync_with_stdio(0);
ll t;
cin >> t;
while(t--) solve();
}
这程序好像有点Bug,我给组数据试试?
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3792kb
input:
2 8 2 1 2 3 1 4 6 3 5 2 4 8 5 5 7 4 3 1 2 1 3 2 4
output:
2 1
result:
ok 2 lines
Test #2:
score: 0
Accepted
time: 69ms
memory: 4476kb
input:
5550 13 4 10 3 9 1 10 8 3 11 8 5 10 7 9 6 13 5 9 7 2 7 5 12 4 8 8 2 4 1 3 4 7 8 2 5 6 7 4 8 2 3 11 1 11 10 1 4 9 10 8 4 3 6 5 7 6 1 10 2 11 7 11 1 17 2 14 16 13 15 17 3 15 11 1 6 13 2 13 17 4 8 14 10 8 14 14 5 9 12 14 2 12 17 17 6 15 7 14 6 2 14 2 13 2 4 8 4 3 11 7 3 14 1 11 9 13 3 5 10 6 8 3 10 14 ...
output:
0 3 112 0 1 0 1 0 0 0 1 0 1 0 0 1 0 140 0 0 0 814 1 6 1 1 2 2 0 612 0 1 0 0 0 1 1 0 0 121 4536 0 0 1718 0 0 1 0 444 1 1908 1813 3 74 0 1 0 46 0 0 0 0 0 0 0 0 0 1 0 1 1 1 239 0 0 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 48 0 2 0 0 0 1 364 0 206 0 0 76 0 1 0 0 2 0 1 2 0 0 1 0 0 4 0 1 1 0 0 1 1 1 0 0 1 1 ...
result:
ok 5550 lines
Test #3:
score: 0
Accepted
time: 148ms
memory: 10048kb
input:
3 99990 259 23374 69108 82204 51691 8142 67119 48537 97966 51333 44408 33147 68485 21698 86824 15746 58746 78761 86975 58449 61819 69001 68714 25787 2257 25378 14067 64899 68906 29853 31359 75920 85420 76072 11728 63836 55505 43671 98920 77281 25176 40936 66517 61029 61440 66908 52300 92101 59742 69...
output:
259200 247 207766300
result:
ok 3 lines
Test #4:
score: 0
Accepted
time: 144ms
memory: 9880kb
input:
3 99822 332 11587 83046 63424 60675 63423 73718 74622 40130 5110 26562 28361 80899 30886 70318 8708 11068 34855 96504 7904 75735 31904 42745 87892 55105 82374 81319 77407 82147 91475 12343 13470 95329 58766 95716 83232 44156 75907 92437 69785 93598 47857 33018 62668 31394 24238 72675 98254 43583 180...
output:
315881300 4505040 185631154
result:
ok 3 lines
Test #5:
score: 0
Accepted
time: 146ms
memory: 9848kb
input:
3 99021 1000 41739 4318 72541 76341 31227 15416 49232 13808 50837 51259 74464 11157 92684 84646 95226 64673 74155 82511 33301 31373 5901 29318 38227 98893 96752 57411 35167 42401 24344 90803 6956 33753 51120 24535 29594 2646 70305 32961 93079 38070 49273 48987 62799 77986 94353 84447 74970 31546 263...
output:
917568 1 1213
result:
ok 3 lines
Test #6:
score: 0
Accepted
time: 112ms
memory: 9500kb
input:
3 100000 10000 15556 26349 14984 68012 43040 63434 32168 60646 70509 38559 26238 29031 45952 19431 29510 54395 5676 59515 28220 41438 46902 56640 8221 80059 77225 66558 17473 87324 20819 35098 29515 12641 84108 41157 11223 66562 25999 95852 3790 63605 20963 15799 217 58841 61619 13324 3406 60525 693...
output:
1 1 1
result:
ok 3 lines
Test #7:
score: 0
Accepted
time: 816ms
memory: 74076kb
input:
3 99969 79 84806 29026 76190 49303 81448 88606 47775 83229 7424 30063 75504 59640 28456 18012 26623 18383 66305 32640 55981 65140 25760 523 76248 13482 25598 55231 96844 17032 44892 64592 4915 50521 49879 86466 99286 20894 97915 76337 38424 2546 17489 46475 91791 2636 79283 35209 14773 60224 94096 5...
output:
855988479 413863362 390147247
result:
ok 3 lines
Test #8:
score: 0
Accepted
time: 846ms
memory: 65032kb
input:
3 99655 347 11149 99084 14300 87239 74978 75669 48703 12705 62600 62372 85743 67544 11248 36566 31920 23357 91970 67460 47599 56467 67521 16526 50284 63800 6701 3456 15660 81507 43192 5734 57965 67731 42676 26195 60309 19848 30504 47635 66455 98017 1645 70119 47861 95592 32453 39251 31178 59516 2144...
output:
500906609 4366296 91620762
result:
ok 3 lines
Test #9:
score: 0
Accepted
time: 350ms
memory: 69732kb
input:
3 99074 1000 10018 10926 93276 10882 57018 36456 36298 20551 34971 14671 82296 41279 49459 20897 56874 98633 57849 24888 15425 8116 62887 30467 61380 38308 70548 49238 49287 13456 83286 31072 93096 52396 17509 64864 75106 13508 26188 61092 74762 46749 78773 89071 57494 24130 29618 24192 21061 11372 ...
output:
895874645 85900584 237336
result:
ok 3 lines
Test #10:
score: 0
Accepted
time: 194ms
memory: 56980kb
input:
3 90006 10000 73490 30293 71611 45400 5985 73192 89192 86831 26722 13580 73 42029 64900 69699 1501 9326 5417 72489 81756 62830 19449 20243 85297 63347 30952 20243 69122 148 42880 88227 69343 66867 72919 75705 53663 32672 65715 35962 19421 5905 13102 4284 40894 88911 87558 21940 82573 82415 83203 131...
output:
84 3 1
result:
ok 3 lines
Test #11:
score: 0
Accepted
time: 559ms
memory: 45968kb
input:
3 99923 88 78033 17440 86489 72898 41036 84474 8561 18775 31676 62859 379 69955 66435 12651 7678 88259 64810 65776 30805 95902 81241 9085 22021 14554 26753 64229 59137 92000 90432 10825 80094 9597 7911 60599 66954 99719 81996 99136 42256 88131 73137 65163 97771 99132 66272 25651 80912 42272 94725 75...
output:
578738252 635410385 616515379
result:
ok 3 lines
Test #12:
score: 0
Accepted
time: 752ms
memory: 64108kb
input:
3 99773 362 16637 83914 63631 58741 27359 60161 8952 80795 52395 54853 26443 41008 37319 45707 47426 17039 26219 59547 19137 49086 14972 25115 76069 24037 26972 72363 92135 98301 86774 59913 54636 40038 88922 39806 62589 40377 94667 83663 23634 79618 24932 51069 15632 14476 73182 42535 98053 50141 2...
output:
718699462 887216138 726376429
result:
ok 3 lines
Test #13:
score: 0
Accepted
time: 299ms
memory: 49068kb
input:
3 99092 1000 49588 46079 55304 73177 18967 13059 52465 87314 78600 97324 69426 93208 93660 32936 1196 14888 79251 2603 82306 14847 7113 64862 2219 96349 68128 70861 42412 26436 3256 55313 13458 61469 6266 41279 75057 19685 88624 5001 3437 60451 32605 41073 72888 60159 26888 14135 18572 17170 11099 4...
output:
495088901 243801881 33
result:
ok 3 lines
Test #14:
score: 0
Accepted
time: 148ms
memory: 46104kb
input:
3 90000 10000 87964 18251 12687 18104 78011 37556 4983 29905 11284 20403 34250 81402 89508 6978 62519 18650 87412 74628 86526 88800 36368 38274 60311 25701 31660 13827 19031 84677 12557 49159 78925 43858 11560 86110 26994 87734 858 46385 85867 29897 62594 20009 50471 87109 77717 8190 71331 44932 570...
output:
1 1 1
result:
ok 3 lines
Test #15:
score: 0
Accepted
time: 377ms
memory: 48260kb
input:
3 99819 218 15128 87625 26894 97807 74349 83371 14774 10443 13261 31540 78090 53944 58055 19995 63820 64481 269 89813 80310 31087 98842 24345 32620 10612 58004 41547 86990 99489 8873 50122 9750 9895 16330 58033 72917 46097 90881 12042 98057 49196 17548 87122 66574 96602 36023 19215 19515 43934 14875...
output:
880185860 949287013 157116569
result:
ok 3 lines
Test #16:
score: 0
Accepted
time: 412ms
memory: 62200kb
input:
3 99675 377 85617 1008 16957 5302 29036 43568 26644 73742 95538 87850 36434 95180 75521 95557 61327 7435 14918 15313 56136 58622 64335 13941 50507 27180 78582 32465 6420 87514 90207 73441 42230 45679 5442 18048 58968 83147 65534 19505 60549 90524 55605 21274 93589 24952 73182 3136 27000 73554 2566 8...
output:
789159485 532394394 26715
result:
ok 3 lines
Test #17:
score: 0
Accepted
time: 268ms
memory: 61632kb
input:
3 99044 1000 76852 50370 30397 85586 92739 11074 76934 75240 37614 64349 77982 12307 73391 93804 83432 22135 73239 9997 10638 54120 4067 97619 83197 70602 96104 2925 10203 7199 78302 40626 31063 42976 78481 25765 19133 81706 21489 82284 37017 30262 71614 56388 30698 37348 57013 68118 17186 50664 655...
output:
96984968 57966928 37401
result:
ok 3 lines
Test #18:
score: 0
Accepted
time: 147ms
memory: 66108kb
input:
3 90007 10000 34002 29711 67960 67913 37266 81420 31618 89748 31937 80647 15048 29012 39472 5346 66976 79828 13310 82211 27879 13150 80096 22971 42896 29977 31648 66746 58037 28226 81556 35007 50862 86637 47666 17507 72347 72849 36790 16145 41695 66392 9514 77718 37806 29200 61221 81716 26864 27272 ...
output:
13 1 1
result:
ok 3 lines
Test #19:
score: 0
Accepted
time: 106ms
memory: 10136kb
input:
3 99999 1 15526 5816 15526 91340 85090 15526 1815 15526 15526 60171 60385 15526 69663 15526 15526 41953 53736 15526 89414 15526 15526 94460 21625 15526 15526 8540 15526 67534 15526 4622 15526 7978 15526 28610 42253 15526 15526 26283 2628 15526 15526 5188 15526 6704 15526 69277 15526 51976 15526 7295...
output:
99999 0 0
result:
ok 3 lines
Test #20:
score: 0
Accepted
time: 105ms
memory: 10192kb
input:
3 100000 429 1 57398 57398 57200 76340 1 76340 59785 76340 84657 1 26989 88056 26989 26989 4041 26989 36411 1 61120 61120 73590 52743 61120 61120 72023 19959 61120 44366 1 9930 44366 41401 44366 51704 44366 21854 44366 1 12768 12768 2694 12768 40037 12768 31800 12768 46496 1 31963 85737 31963 31963 ...
output:
0 0 0
result:
ok 3 lines
Test #21:
score: 0
Accepted
time: 93ms
memory: 6928kb
input:
6 50000 267 1 34009 1 16272 16272 47288 1 35559 35559 15885 1 6564 27858 6564 22579 6564 1 44936 17220 44936 26160 44936 1 32316 35365 32316 37958 32316 20510 1 27878 20510 9368 20510 33467 20510 26290 1 48832 26290 24415 26290 2851 26290 1 12040 21167 12040 36738 12040 12040 7284 1 12936 12936 2982...
output:
0 0 0 0 0 0
result:
ok 6 lines
Test #22:
score: 0
Accepted
time: 96ms
memory: 5496kb
input:
12 25000 258 13484 1 1 16801 16801 7731 1 13880 13880 79 13880 6939 5802 13880 11343 1 21799 11343 6193 11343 8976 11343 11343 15462 9279 1 22367 9279 1419 9279 1412 9279 23782 9279 1 6728 6728 18671 6728 20942 6728 16877 16191 6728 6728 20618 3948 1 3948 16740 3948 24198 3948 85 3948 4865 3948 1288...
output:
0 0 0 0 0 0 0 0 0 0 0 0
result:
ok 12 lines
Test #23:
score: 0
Accepted
time: 90ms
memory: 3884kb
input:
300 1000 57 801 1 1 903 29 903 1 685 685 895 685 714 1 273 666 273 930 273 273 498 677 1 677 524 618 677 677 582 677 771 1 327 330 327 327 518 844 327 259 327 364 1 422 364 43 364 364 349 364 366 373 364 1 614 614 836 718 614 459 614 657 614 335 614 614 610 614 272 523 1 118 523 523 235 523 58 523 3...
output:
0 0 0 0 0 0 0 0 0 0 0 793178976 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 21617700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 764435931 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...
result:
ok 300 lines
Test #24:
score: 0
Accepted
time: 92ms
memory: 3888kb
input:
100 3000 26 1 2424 1159 1 1159 2103 1159 1329 1604 1159 1159 582 160 1159 1 1484 1484 1828 1484 1911 1484 1072 1484 1457 1484 938 2036 1484 1484 2442 1484 2530 1 2471 2471 703 1464 2471 2471 1778 2471 1395 2197 2471 2471 2543 2574 2471 36 2471 1 1639 1639 1356 223 1639 281 1639 1639 817 967 1639 163...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
result:
ok 100 lines
Test #25:
score: 0
Accepted
time: 144ms
memory: 10308kb
input:
3 100000 141 80173 6 63209 8 22027 13 97646 17 63571 19 92352 21 87994 23 20254 24 83136 28 47623 29 69328 31 91043 32 82790 34 43140 36 60529 39 49512 41 2937 42 13921 44 8802 47 42519 48 20562 49 30829 51 21329 53 40257 58 85583 59 48601 60 75786 61 60091 62 67600 65 57659 67 6371 68 53851 73 7094...
output:
0 0 0
result:
ok 3 lines
Test #26:
score: 0
Accepted
time: 76ms
memory: 9892kb
input:
3 100000 56 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 30 1 31 1 32 1 33 1 34 1 35 1 36 1 37 1 38 1 39 1 40 1 41 1 42 1 43 1 44 1 45 1 46 1 47 1 48 1 49 1 50 1 51 1 52 1 53 1 54 1 55 1 56 1 57 1 58 1 59 1 60 1...
output:
0 0 0
result:
ok 3 lines
Test #27:
score: 0
Accepted
time: 949ms
memory: 82484kb
input:
3 100000 71 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 45 46 46 47 47 48 48 49 49 50 50 51 51 52...
output:
228906068 585530579 426277711
result:
ok 3 lines
Test #28:
score: 0
Accepted
time: 140ms
memory: 9908kb
input:
3 100000 134 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 30 1 31 1 32 1 33 1 34 1 35 1 36 1 37 1 38 1 39 1 40 1 41 1 42 1 43 1 44 1 45 1 46 1 47 1 48 1 49 1 50 1 51 1 52 1 53 1 54 1 55 1 56 1 57 1 58 1 59 1 60 ...
output:
0 0 6502727
result:
ok 3 lines
Test #29:
score: 0
Accepted
time: 89ms
memory: 10248kb
input:
3 100000 310 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 30 2 31 2 32 2 33 2 34 2 35 2 36 2 37 2 38 2 39 2 40 2 41 2 42 2 43 2 44 2 45 2 46 2 47 2 48 2 49 2 50 2 51 2 52 2 53 2 54 2 55 2 56 2 57 2 58 2 59 3 60 ...
output:
0 0 0
result:
ok 3 lines
Test #30:
score: 0
Accepted
time: 84ms
memory: 10428kb
input:
3 100000 23 1 2 1 3 2 4 2 5 2 6 2 7 2 8 3 9 3 10 3 11 3 12 3 13 3 14 3 15 4 16 4 17 4 18 4 19 4 20 4 21 4 22 4 23 4 24 5 25 5 26 5 27 5 28 5 29 5 30 5 31 5 32 5 33 5 34 5 35 6 36 6 37 6 38 6 39 6 40 6 41 6 42 6 43 6 44 6 45 6 46 6 47 6 48 7 49 7 50 7 51 7 52 7 53 7 54 7 55 7 56 7 57 7 58 7 59 7 60 7...
output:
0 0 0
result:
ok 3 lines
Test #31:
score: 0
Accepted
time: 131ms
memory: 9724kb
input:
3 100000 158 1 2 2 3 1 4 4 5 4 6 1 7 3 8 6 9 5 10 7 11 10 12 9 13 8 14 3 15 8 16 6 17 12 18 1 19 5 20 12 21 7 22 9 23 11 24 21 25 4 26 22 27 12 28 28 29 7 30 21 31 12 32 18 33 1 34 26 35 28 36 36 37 36 38 38 39 37 40 14 41 34 42 9 43 13 44 15 45 25 46 11 47 12 48 27 49 29 50 5 51 18 52 28 53 30 54 2...
output:
0 0 0
result:
ok 3 lines
Test #32:
score: 0
Accepted
time: 123ms
memory: 9552kb
input:
3 100000 184 1 2 2 3 3 4 4 5 5 6 6 7 5 8 8 9 4 10 6 11 11 12 12 13 4 14 8 15 10 16 16 17 17 18 18 19 16 20 11 21 21 22 22 23 23 24 19 25 25 26 26 27 8 28 2 29 8 30 30 31 12 32 32 33 7 34 34 35 4 36 36 37 37 38 38 39 3 40 4 41 41 42 42 43 43 44 44 45 45 46 25 47 47 48 22 49 16 50 13 51 51 52 52 53 45...
output:
0 0 0
result:
ok 3 lines
Test #33:
score: 0
Accepted
time: 110ms
memory: 9832kb
input:
3 100000 235 1 2 1 3 1 4 1 5 1 6 1 7 7 8 8 9 1 10 7 11 1 12 11 13 1 14 1 15 4 16 11 17 1 18 1 19 16 20 1 21 1 22 21 23 1 24 1 25 1 26 1 27 3 28 24 29 1 30 1 31 1 32 32 33 8 34 30 35 5 36 8 37 1 38 1 39 1 40 19 41 28 42 4 43 24 44 31 45 13 46 1 47 10 48 1 49 1 50 1 51 1 52 26 53 42 54 24 55 2 56 45 5...
output:
0 0 0
result:
ok 3 lines
Test #34:
score: 0
Accepted
time: 115ms
memory: 9832kb
input:
3 100000 117 1 2 2 3 2 4 4 5 5 6 4 7 7 8 8 9 9 10 7 11 11 12 12 13 13 14 14 15 11 16 16 17 17 18 18 19 19 20 20 21 16 22 22 23 23 24 24 25 25 26 26 27 27 28 22 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 29 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 37 46 46 47 47 48 48 49 49 50 50 51 51 52...
output:
0 0 0
result:
ok 3 lines
Test #35:
score: 0
Accepted
time: 131ms
memory: 49736kb
input:
3 100000 145 1 3 2 3 3 5 4 5 5 7 6 7 7 9 8 9 9 11 10 11 11 13 12 13 13 15 14 15 15 17 16 17 17 19 18 19 19 21 20 21 21 23 22 23 23 25 24 25 25 27 26 27 27 29 28 29 29 31 30 31 31 33 32 33 33 35 34 35 35 37 36 37 37 39 38 39 39 41 40 41 41 43 42 43 43 45 44 45 45 47 46 47 47 49 48 49 49 51 50 51 51 5...
output:
0 0 0
result:
ok 3 lines
Test #36:
score: 0
Accepted
time: 126ms
memory: 3808kb
input:
300 1000 9 520 1 638 2 625 6 21 19 670 21 258 22 118 25 825 26 729 27 533 28 665 30 71 31 116 33 158 34 468 36 927 42 137 44 558 45 942 47 427 54 561 57 16 60 15 63 931 65 585 74 40 77 576 78 873 79 311 84 601 87 225 89 846 91 633 93 350 94 593 97 531 98 334 99 666 100 979 104 809 105 386 106 184 11...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 477418661 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 988749974 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 806630583 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 300 lines
Test #37:
score: 0
Accepted
time: 81ms
memory: 3872kb
input:
300 1000 18 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 30 1 31 1 32 1 33 1 34 1 35 1 36 1 37 1 38 1 39 1 40 1 41 1 42 1 43 1 44 1 45 1 46 1 47 1 48 1 49 1 50 1 51 1 52 1 53 1 54 1 55 1 56 1 57 1 58 1 59 1 60 1...
output:
0 0 0 0 0 0 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1000 0 0 0 0 0 0 ...
result:
ok 300 lines
Test #38:
score: 0
Accepted
time: 223ms
memory: 4648kb
input:
300 1000 22 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 45 46 46 47 47 48 48 49 49 50 50 51 51 52...
output:
323005427 941622292 7888725 960586062 878812769 960508245 878812769 30045015 710986442 381211546 77558760 901910487 901910487 19853036 636907940 941622292 636907940 583285540 319336899 467675527 253210101 989586549 7888725 987892341 30045015 636907940 583285540 30260377 960586062 901910487 901910487...
result:
ok 300 lines
Test #39:
score: 0
Accepted
time: 151ms
memory: 4376kb
input:
300 1000 14 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 2 23 3 24 4 25 5 26 6 27 7 28 8 29 9 30 10 31 11 32 12 33 13 34 14 35 15 36 16 37 17 38 18 39 19 40 20 41 21 42 22 43 23 44 24 45 25 46 26 47 27 48 28 49 29 50 30 51 31 52 32 53 33 54 34 55 3...
output:
0 419313917 0 0 0 1 0 901910487 0 0 0 105457563 0 0 0 895993044 1 960586062 691020710 0 834938939 464387622 912996466 0 0 122100405 0 0 0 0 208596912 0 640434527 43348745 0 897296141 941622292 10518300 0 362363366 261311097 0 0 422253306 0 0 0 0 323497662 0 0 0 0 737109138 600008834 0 257542067 0 0 ...
result:
ok 300 lines
Test #40:
score: 0
Accepted
time: 93ms
memory: 4400kb
input:
300 1000 30 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 10 2 11 2 12 2 13 2 14 2 15 2 16 2 17 3 18 3 19 3 20 3 21 3 22 3 23 3 24 3 25 4 26 4 27 4 28 4 29 4 30 4 31 4 32 4 33 5 34 5 35 5 36 5 37 5 38 5 39 5 40 5 41 6 42 6 43 6 44 6 45 6 46 6 47 6 48 6 49 7 50 7 51 7 52 7 53 7 54 7 55 7 56 7 57 8 58 8 59 8 60 8...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 385259412 0 0 392114570 0 0 0 435253942 901501642 0 0 0 0 0 0 0 0 0 0 12155170 0 0 0 0 0 228488 0 0 0 0 0 0 0 0 0 0 901501642 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 300 lines
Test #41:
score: 0
Accepted
time: 89ms
memory: 3788kb
input:
300 1000 16 1 2 1 3 2 4 2 5 2 6 2 7 2 8 3 9 3 10 3 11 3 12 3 13 3 14 3 15 4 16 4 17 4 18 4 19 4 20 4 21 4 22 4 23 4 24 5 25 5 26 5 27 5 28 5 29 5 30 5 31 5 32 5 33 5 34 5 35 6 36 6 37 6 38 6 39 6 40 6 41 6 42 6 43 6 44 6 45 6 46 6 47 6 48 7 49 7 50 7 51 7 52 7 53 7 54 7 55 7 56 7 57 7 58 7 59 7 60 7...
output:
0 0 0 0 0 0 0 0 0 0 333550771 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333550771 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333550771 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333550771 0 0 0 0 0 0 0 0 0 0 33355077...
result:
ok 300 lines
Test #42:
score: 0
Accepted
time: 109ms
memory: 3712kb
input:
300 1000 7 1 2 1 3 3 4 3 5 4 6 3 7 3 8 1 9 4 10 7 11 3 12 9 13 9 14 6 15 2 16 5 17 1 18 13 19 1 20 20 21 19 22 21 23 13 24 22 25 14 26 7 27 1 28 15 29 9 30 3 31 8 32 20 33 9 34 10 35 28 36 12 37 17 38 7 39 10 40 1 41 12 42 18 43 20 44 16 45 19 46 1 47 45 48 29 49 7 50 35 51 33 52 16 53 33 54 19 55 2...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 778308991 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 43200629 0 0 0 0 0 0 0 0...
result:
ok 300 lines
Test #43:
score: 0
Accepted
time: 115ms
memory: 3744kb
input:
300 1000 3 1 2 2 3 3 4 4 5 2 6 6 7 1 8 4 9 4 10 10 11 11 12 4 13 13 14 9 15 3 16 16 17 17 18 18 19 19 20 20 21 3 22 4 23 23 24 20 25 25 26 26 27 10 28 28 29 1 30 16 31 4 32 21 33 33 34 32 35 18 36 36 37 37 38 27 39 39 40 40 41 41 42 31 43 28 44 44 45 45 46 46 47 10 48 1 49 13 50 50 51 51 52 29 53 53...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 694166651 196634955 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 543130652 0 0 0 0 0 0 0 129188971 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582516300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 300 lines
Test #44:
score: 0
Accepted
time: 103ms
memory: 3708kb
input:
300 1000 13 1 2 1 3 1 4 1 5 1 6 1 7 5 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 12 16 6 17 1 18 1 19 19 20 1 21 18 22 1 23 1 24 17 25 1 26 1 27 1 28 8 29 16 30 1 31 10 32 29 33 1 34 1 35 1 36 3 37 1 38 34 39 16 40 1 41 1 42 34 43 23 44 22 45 1 46 39 47 45 48 1 49 1 50 1 51 1 52 1 53 9 54 1 55 1 56 52 57 4...
output:
0 133749621 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244103312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183143151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 300 lines
Test #45:
score: 0
Accepted
time: 117ms
memory: 3712kb
input:
300 1000 15 1 2 2 3 2 4 4 5 5 6 4 7 7 8 8 9 9 10 7 11 11 12 12 13 13 14 14 15 11 16 16 17 17 18 18 19 19 20 20 21 16 22 22 23 23 24 24 25 25 26 26 27 27 28 22 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 29 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 37 46 46 47 47 48 48 49 49 50 50 51 51 52 ...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 274762166 0 0 0 0 0 0 0 0 0 0 0 0 0 398132450 0 0 587717342 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 587717342 0 398132450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 587717342 0 274762166 0 0 0 0 0 0 0 0 398132450 0 0 ...
result:
ok 300 lines
Test #46:
score: 0
Accepted
time: 113ms
memory: 4044kb
input:
300 1000 33 1 3 2 3 3 5 4 5 5 7 6 7 7 9 8 9 9 11 10 11 11 13 12 13 13 15 14 15 15 17 16 17 17 19 18 19 19 21 20 21 21 23 22 23 23 25 24 25 25 27 26 27 27 29 28 29 29 31 30 31 31 33 32 33 33 35 34 35 35 37 36 37 37 39 38 39 39 41 40 41 41 43 42 43 43 45 44 45 45 47 46 47 47 49 48 49 49 51 50 51 51 53...
output:
0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 0 1 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 0 556586257 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 556586257 0 0 0 0 0 ...
result:
ok 300 lines
Test #47:
score: 0
Accepted
time: 138ms
memory: 10552kb
input:
3 100000 157 62020 6 19963 7 7238 10 37922 14 79431 15 83118 16 66558 18 16837 22 68998 26 17764 36 67025 43 33934 55 91228 58 40295 62 43491 63 80707 64 73846 68 5817 69 95212 70 73148 71 93720 77 59916 81 85914 82 81320 83 3384 85 60680 87 89965 89 60201 90 66529 92 41320 93 69082 94 93875 96 5329...
output:
0 0 0
result:
ok 3 lines
Test #48:
score: 0
Accepted
time: 141ms
memory: 10444kb
input:
3 100000 226 29677 3 43410 4 79556 5 35809 6 3528 7 76465 8 63634 16 59070 21 35525 29 3739 30 39762 34 28625 36 82910 40 94087 41 41506 46 8963 50 44915 57 50544 58 29442 61 31296 62 3844 63 60917 67 76565 71 11451 73 75481 74 44793 76 90148 77 91625 78 76219 79 65699 83 92442 84 80289 88 48280 89 ...
output:
0 0 0
result:
ok 3 lines
Test #49:
score: 0
Accepted
time: 140ms
memory: 10264kb
input:
3 100000 172 13124 2 30283 3 21907 8 20768 9 42188 14 72816 19 54692 26 86076 28 85259 30 79153 36 33409 37 40734 38 23240 42 7686 43 44026 44 34936 45 21565 47 14428 52 56244 53 87759 59 15673 60 8242 63 36808 65 36958 68 21086 69 32987 73 31459 74 18609 76 68964 77 38494 78 49125 83 79818 86 85237...
output:
0 0 0
result:
ok 3 lines
Test #50:
score: 0
Accepted
time: 204ms
memory: 12120kb
input:
3 100000 327 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 1 23 2 24 3 25 4 26 5 27 6 28 7 29 8 30 9 31 10 32 11 33 12 34 13 35 14 36 15 37 16 38 17 39 18 40 19 41 20 42 21 43 22 44 23 45 24 46 25 47 26 48 27 49 28 50 29 51 30 52 31 53 32 54 33 55 3...
output:
0 0 647948500
result:
ok 3 lines
Test #51:
score: 0
Accepted
time: 131ms
memory: 9896kb
input:
3 100000 158 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 30 1 31 1 32 1 33 1 34 1 35 1 36 1 37 1 38 1 39 1 40 1 41 1 42 1 43 1 44 1 45 1 46 1 47 1 48 1 49 1 50 1 51 1 52 1 53 1 54 1 55 1 56 1 57 1 58 1 59 1 60 ...
output:
0 0 0
result:
ok 3 lines
Test #52:
score: 0
Accepted
time: 146ms
memory: 9660kb
input:
3 100000 234 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 30 1 31 1 32 1 33 1 34 1 35 1 36 1 37 1 38 1 39 1 40 1 41 1 42 1 43 1 44 1 45 1 46 1 47 1 48 1 49 1 50 1 51 1 52 1 53 1 54 1 55 1 56 1 57 1 58 1 59 1 60 ...
output:
0 0 179356563
result:
ok 3 lines
Test #53:
score: 0
Accepted
time: 97ms
memory: 10360kb
input:
3 100000 179 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 30 1 31 1 32 1 33 1 34 1 35 1 36 1 37 1 38 1 39 1 40 1 41 1 42 1 43 1 44 1 45 1 46 1 47 1 48 1 49 1 50 1 51 1 52 1 53 1 54 1 55 1 56 1 57 1 58 1 59 1 60 ...
output:
0 0 0
result:
ok 3 lines
Test #54:
score: 0
Accepted
time: 87ms
memory: 10760kb
input:
3 100000 151 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 30 1 31 1 32 1 33 1 34 1 35 1 36 1 37 1 38 1 39 1 40 1 41 1 42 1 43 1 44 1 45 1 46 1 47 1 48 1 49 1 50 1 51 1 52 1 53 1 54 1 55 1 56 1 57 1 58 1 59 1 60 ...
output:
0 0 0
result:
ok 3 lines
Test #55:
score: 0
Accepted
time: 87ms
memory: 10688kb
input:
3 100000 333 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 30 1 31 1 32 1 33 1 34 1 35 1 36 1 37 1 38 1 39 1 40 1 41 1 42 1 43 1 44 1 45 1 46 1 47 1 48 1 49 1 50 1 51 1 52 1 53 1 54 1 55 1 56 1 57 1 58 1 59 1 60 ...
output:
0 0 0
result:
ok 3 lines
Test #56:
score: 0
Accepted
time: 91ms
memory: 10484kb
input:
3 100000 288 1 2 1 3 2 4 2 5 2 6 2 7 2 8 3 9 3 10 3 11 3 12 3 13 3 14 3 15 4 16 4 17 4 18 4 19 4 20 4 21 4 22 4 23 4 24 5 25 5 26 5 27 5 28 5 29 5 30 5 31 5 32 5 33 5 34 5 35 6 36 6 37 6 38 6 39 6 40 6 41 6 42 6 43 6 44 6 45 6 46 6 47 6 48 7 49 7 50 7 51 7 52 7 53 7 54 7 55 7 56 7 57 7 58 7 59 7 60 ...
output:
0 0 0
result:
ok 3 lines
Test #57:
score: 0
Accepted
time: 93ms
memory: 10352kb
input:
3 100000 226 1 2 1 3 2 4 2 5 2 6 2 7 2 8 3 9 3 10 3 11 3 12 3 13 3 14 3 15 4 16 4 17 4 18 4 19 4 20 4 21 4 22 4 23 4 24 5 25 5 26 5 27 5 28 5 29 5 30 5 31 5 32 5 33 5 34 5 35 6 36 6 37 6 38 6 39 6 40 6 41 6 42 6 43 6 44 6 45 6 46 6 47 6 48 7 49 7 50 7 51 7 52 7 53 7 54 7 55 7 56 7 57 7 58 7 59 7 60 ...
output:
0 0 0
result:
ok 3 lines
Test #58:
score: 0
Accepted
time: 85ms
memory: 10244kb
input:
3 100000 170 1 2 1 3 2 4 2 5 2 6 2 7 2 8 3 9 3 10 3 11 3 12 3 13 3 14 3 15 4 16 4 17 4 18 4 19 4 20 4 21 4 22 4 23 4 24 5 25 5 26 5 27 5 28 5 29 5 30 5 31 5 32 5 33 5 34 5 35 6 36 6 37 6 38 6 39 6 40 6 41 6 42 6 43 6 44 6 45 6 46 6 47 6 48 7 49 7 50 7 51 7 52 7 53 7 54 7 55 7 56 7 57 7 58 7 59 7 60 ...
output:
0 0 0
result:
ok 3 lines
Test #59:
score: 0
Accepted
time: 127ms
memory: 9548kb
input:
3 100000 323 1 2 2 3 3 4 4 5 1 6 6 7 7 8 8 9 3 10 10 11 5 12 12 13 13 14 14 15 15 16 16 17 17 18 13 19 19 20 17 21 21 22 8 23 2 24 17 25 7 26 7 27 16 28 28 29 29 30 20 31 24 32 16 33 33 34 34 35 35 36 36 37 37 38 38 39 35 40 40 41 3 42 8 43 5 44 44 45 45 46 32 47 25 48 32 49 47 50 27 51 46 52 19 53 ...
output:
0 0 0
result:
ok 3 lines
Test #60:
score: 0
Accepted
time: 130ms
memory: 9800kb
input:
3 100000 141 1 2 1 3 1 4 3 5 5 6 6 7 7 8 8 9 4 10 10 11 2 12 12 13 13 14 14 15 7 16 10 17 17 18 6 19 7 20 20 21 6 22 15 23 3 24 2 25 21 26 3 27 15 28 11 29 23 30 30 31 10 32 32 33 33 34 34 35 35 36 21 37 37 38 38 39 8 40 35 41 28 42 42 43 32 44 8 45 31 46 46 47 47 48 48 49 49 50 50 51 51 52 52 53 16...
output:
0 0 0
result:
ok 3 lines
Test #61:
score: 0
Accepted
time: 126ms
memory: 9528kb
input:
3 100000 28 1 2 2 3 3 4 4 5 4 6 1 7 7 8 8 9 9 10 8 11 11 12 7 13 1 14 9 15 15 16 16 17 9 18 18 19 9 20 3 21 1 22 16 23 23 24 20 25 14 26 26 27 15 28 5 29 20 30 23 31 19 32 32 33 31 34 34 35 35 36 36 37 33 38 38 39 39 40 40 41 41 42 26 43 43 44 44 45 45 46 24 47 47 48 3 49 49 50 50 51 51 52 51 53 27 ...
output:
0 0 0
result:
ok 3 lines
Test #62:
score: 0
Accepted
time: 113ms
memory: 9856kb
input:
3 100000 23 1 2 1 3 2 4 1 5 2 6 2 7 1 8 8 9 1 10 5 11 1 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 17 22 1 23 1 24 1 25 1 26 1 27 1 28 1 29 24 30 1 31 27 32 1 33 1 34 1 35 1 36 13 37 10 38 1 39 1 40 2 41 1 42 38 43 1 44 1 45 1 46 1 47 10 48 1 49 1 50 20 51 1 52 1 53 1 54 25 55 23 56 20 57 1 58 ...
output:
0 0 0
result:
ok 3 lines
Test #63:
score: 0
Accepted
time: 108ms
memory: 9856kb
input:
3 100000 8 1 2 2 3 1 4 2 5 5 6 1 7 1 8 1 9 7 10 10 11 1 12 10 13 5 14 1 15 12 16 6 17 1 18 1 19 10 20 1 21 19 22 1 23 10 24 1 25 1 26 5 27 4 28 1 29 1 30 1 31 5 32 27 33 1 34 28 35 1 36 35 37 31 38 1 39 28 40 1 41 22 42 1 43 14 44 44 45 1 46 31 47 1 48 43 49 1 50 21 51 1 52 1 53 30 54 8 55 54 56 1 5...
output:
0 0 0
result:
ok 3 lines
Test #64:
score: 0
Accepted
time: 111ms
memory: 9816kb
input:
3 100000 317 1 2 1 3 1 4 2 5 1 6 1 7 1 8 1 9 8 10 1 11 5 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 11 20 19 21 1 22 1 23 1 24 1 25 22 26 10 27 1 28 1 29 1 30 1 31 6 32 28 33 6 34 13 35 16 36 1 37 1 38 35 39 21 40 1 41 1 42 6 43 1 44 43 45 1 46 13 47 1 48 1 49 27 50 1 51 1 52 1 53 1 54 27 55 1 56 1 57 1 ...
output:
0 0 0
result:
ok 3 lines
Test #65:
score: 0
Accepted
time: 127ms
memory: 10092kb
input:
3 100000 268 1 2 2 3 2 4 4 5 5 6 4 7 7 8 8 9 9 10 7 11 11 12 12 13 13 14 14 15 11 16 16 17 17 18 18 19 19 20 20 21 16 22 22 23 23 24 24 25 25 26 26 27 27 28 22 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 29 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 37 46 46 47 47 48 48 49 49 50 50 51 51 52...
output:
0 0 0
result:
ok 3 lines
Test #66:
score: 0
Accepted
time: 119ms
memory: 9772kb
input:
3 100000 240 1 2 2 3 2 4 4 5 5 6 4 7 7 8 8 9 9 10 7 11 11 12 12 13 13 14 14 15 11 16 16 17 17 18 18 19 19 20 20 21 16 22 22 23 23 24 24 25 25 26 26 27 27 28 22 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 29 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 37 46 46 47 47 48 48 49 49 50 50 51 51 52...
output:
0 0 0
result:
ok 3 lines
Test #67:
score: 0
Accepted
time: 112ms
memory: 9884kb
input:
3 100000 193 1 2 2 3 2 4 4 5 5 6 4 7 7 8 8 9 9 10 7 11 11 12 12 13 13 14 14 15 11 16 16 17 17 18 18 19 19 20 20 21 16 22 22 23 23 24 24 25 25 26 26 27 27 28 22 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 29 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 37 46 46 47 47 48 48 49 49 50 50 51 51 52...
output:
0 0 0
result:
ok 3 lines
Test #68:
score: 0
Accepted
time: 129ms
memory: 49704kb
input:
3 100000 251 1 3 2 3 3 5 4 5 5 7 6 7 7 9 8 9 9 11 10 11 11 13 12 13 13 15 14 15 15 17 16 17 17 19 18 19 19 21 20 21 21 23 22 23 23 25 24 25 25 27 26 27 27 29 28 29 29 31 30 31 31 33 32 33 33 35 34 35 35 37 36 37 37 39 38 39 39 41 40 41 41 43 42 43 43 45 44 45 45 47 46 47 47 49 48 49 49 51 50 51 51 5...
output:
0 0 0
result:
ok 3 lines
Test #69:
score: 0
Accepted
time: 128ms
memory: 49752kb
input:
3 100000 189 1 3 2 3 3 5 4 5 5 7 6 7 7 9 8 9 9 11 10 11 11 13 12 13 13 15 14 15 15 17 16 17 17 19 18 19 19 21 20 21 21 23 22 23 23 25 24 25 25 27 26 27 27 29 28 29 29 31 30 31 31 33 32 33 33 35 34 35 35 37 36 37 37 39 38 39 39 41 40 41 41 43 42 43 43 45 44 45 45 47 46 47 47 49 48 49 49 51 50 51 51 5...
output:
0 0 0
result:
ok 3 lines
Test #70:
score: 0
Accepted
time: 130ms
memory: 49740kb
input:
3 100000 87 1 3 2 3 3 5 4 5 5 7 6 7 7 9 8 9 9 11 10 11 11 13 12 13 13 15 14 15 15 17 16 17 17 19 18 19 19 21 20 21 21 23 22 23 23 25 24 25 25 27 26 27 27 29 28 29 29 31 30 31 31 33 32 33 33 35 34 35 35 37 36 37 37 39 38 39 39 41 40 41 41 43 42 43 43 45 44 45 45 47 46 47 47 49 48 49 49 51 50 51 51 53...
output:
0 0 0
result:
ok 3 lines
Test #71:
score: 0
Accepted
time: 145ms
memory: 10280kb
input:
3 100000 69 79560 4 57278 5 54319 8 14086 10 99883 13 41319 14 21256 17 84702 18 75114 22 62679 26 40625 27 47767 28 2526 30 59325 34 310 36 12483 37 86853 38 72521 40 85701 42 70709 45 15200 46 34100 48 59219 49 5349 51 89300 54 12534 59 79157 60 61807 62 71433 63 28302 68 80583 70 2803 74 52206 75...
output:
0 0 0
result:
ok 3 lines
Test #72:
score: 0
Accepted
time: 84ms
memory: 10076kb
input:
3 100000 7 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 30 1 31 1 32 1 33 1 34 1 35 1 36 1 37 1 38 1 39 1 40 1 41 1 42 1 43 1 44 1 45 1 46 1 47 1 48 1 49 1 50 1 51 1 52 1 53 1 54 1 55 1 56 1 57 1 58 1 59 1 60 1 ...
output:
0 0 0
result:
ok 3 lines
Extra Test:
score: 0
Extra Test Passed