QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#457965 | #8836. Highway Hoax | ucup-team159# | AC ✓ | 196ms | 44452kb | C++20 | 50.5kb | 2024-06-29 15:00:32 | 2024-06-29 15:00:33 |
Judging History
answer
#line 1 "H/main.cpp"
#define YOSUPO_AVX2_PRAGMA
// #undef YOSUPO_LOCAL
#line 2 "/home/vscode/yosupo-library/src/yosupo/fastio.hpp"
#include <unistd.h>
#include <algorithm>
#include <array>
#include <bit>
#include <cassert>
#include <cctype>
#include <cstdint>
#include <cstring>
#include <sstream>
#include <string>
#include <type_traits>
#include <vector>
#line 2 "/home/vscode/yosupo-library/src/yosupo/internal_type_traits.hpp"
#line 5 "/home/vscode/yosupo-library/src/yosupo/internal_type_traits.hpp"
namespace yosupo {
namespace internal {
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 ||
internal::is_signed_int128<T>::value ||
internal::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;
template <class T>
using is_integral_t = std::enable_if_t<is_integral<T>::value>;
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 yosupo
#line 17 "/home/vscode/yosupo-library/src/yosupo/fastio.hpp"
namespace yosupo {
struct Scanner {
public:
Scanner(const Scanner&) = delete;
Scanner& operator=(const Scanner&) = delete;
Scanner(FILE* fp) : fd(fileno(fp)) { line[0] = 127; }
void read() {}
template <class H, class... T> void read(H& h, T&... t) {
bool f = read_single(h);
assert(f);
read(t...);
}
int read_unsafe() { return 0; }
template <class H, class... T> int read_unsafe(H& h, T&... t) {
bool f = read_single(h);
if (!f) return 0;
return 1 + read_unsafe(t...);
}
int close() { return ::close(fd); }
private:
static constexpr int SIZE = 1 << 15;
int fd = -1;
std::array<char, SIZE + 1> line;
int st = 0, ed = 0;
bool eof = false;
bool read_single(std::string& ref) {
if (!skip_space()) return false;
ref = "";
while (true) {
char c = top();
if (c <= ' ') break;
ref += c;
st++;
}
return true;
}
bool read_single(double& ref) {
std::string s;
if (!read_single(s)) return false;
ref = std::stod(s);
return true;
}
template <class T,
std::enable_if_t<std::is_same<T, char>::value>* = nullptr>
bool read_single(T& ref) {
if (!skip_space<50>()) return false;
ref = top();
st++;
return true;
}
template <class T,
internal::is_signed_int_t<T>* = nullptr,
std::enable_if_t<!std::is_same<T, char>::value>* = nullptr>
bool read_single(T& sref) {
using U = internal::to_unsigned_t<T>;
if (!skip_space<50>()) return false;
bool neg = false;
if (line[st] == '-') {
neg = true;
st++;
}
U ref = 0;
do {
ref = 10 * ref + (line[st++] & 0x0f);
} while (line[st] >= '0');
sref = neg ? -ref : ref;
return true;
}
template <class U,
internal::is_unsigned_int_t<U>* = nullptr,
std::enable_if_t<!std::is_same<U, char>::value>* = nullptr>
bool read_single(U& ref) {
if (!skip_space<50>()) return false;
ref = 0;
do {
ref = 10 * ref + (line[st++] & 0x0f);
} while (line[st] >= '0');
return true;
}
bool reread() {
if (ed - st >= 50) return true;
if (st > SIZE / 2) {
std::memmove(line.data(), line.data() + st, ed - st);
ed -= st;
st = 0;
}
if (eof) return false;
auto u = ::read(fd, line.data() + ed, SIZE - ed);
if (u == 0) {
eof = true;
line[ed] = '\0';
u = 1;
}
ed += int(u);
line[ed] = char(127);
return true;
}
char top() {
if (st == ed) {
bool f = reread();
assert(f);
}
return line[st];
}
template <int TOKEN_LEN = 0> bool skip_space() {
while (true) {
while (line[st] <= ' ') st++;
if (ed - st > TOKEN_LEN) return true;
if (st > ed) st = ed;
for (auto i = st; i < ed; i++) {
if (line[i] <= ' ') return true;
}
if (!reread()) return false;
}
}
};
struct Printer {
public:
template <char sep = ' ', bool F = false> void write() {}
template <char sep = ' ', bool F = false, class H, class... T>
void write(const H& h, const T&... t) {
if (F) write_single(sep);
write_single(h);
write<true>(t...);
}
template <char sep = ' ', class... T> void writeln(const T&... t) {
write<sep>(t...);
write_single('\n');
}
Printer(FILE* _fp) : fd(fileno(_fp)) {}
~Printer() { flush(); }
int close() {
flush();
return ::close(fd);
}
void flush() {
if (pos) {
auto res = ::write(fd, line.data(), pos);
assert(res != -1);
pos = 0;
}
}
private:
static std::array<std::array<char, 2>, 100> small;
static std::array<unsigned long long, 20> tens;
static constexpr size_t SIZE = 1 << 15;
int fd;
std::array<char, SIZE> line;
size_t pos = 0;
std::stringstream ss;
template <class T,
std::enable_if_t<std::is_same<char, T>::value>* = nullptr>
void write_single(const T& val) {
if (pos == SIZE) flush();
line[pos++] = val;
}
template <class T,
internal::is_signed_int_t<T>* = nullptr,
std::enable_if_t<!std::is_same<char, T>::value>* = nullptr>
void write_single(const T& val) {
using U = internal::to_unsigned_t<T>;
if (val == 0) {
write_single('0');
return;
}
if (pos > SIZE - 50) flush();
U uval = val;
if (val < 0) {
write_single('-');
uval = -uval;
}
write_unsigned(uval);
}
template <class U,
internal::is_unsigned_int_t<U>* = nullptr,
std::enable_if_t<!std::is_same<char, U>::value>* = nullptr>
void write_single(U uval) {
if (uval == 0) {
write_single('0');
return;
}
if (pos > SIZE - 50) flush();
write_unsigned(uval);
}
static int calc_len(uint64_t x) {
int i = ((63 - std::countl_zero(x)) * 3 + 3) / 10;
if (x < tens[i])
return i;
else
return i + 1;
}
template <class U,
internal::is_unsigned_int_t<U>* = nullptr,
std::enable_if_t<2 >= sizeof(U)>* = nullptr>
void write_unsigned(U uval) {
size_t len = calc_len(uval);
pos += len;
char* ptr = line.data() + pos;
while (uval >= 100) {
ptr -= 2;
memcpy(ptr, small[uval % 100].data(), 2);
uval /= 100;
}
if (uval >= 10) {
memcpy(ptr - 2, small[uval].data(), 2);
} else {
*(ptr - 1) = char('0' + uval);
}
}
template <class U,
internal::is_unsigned_int_t<U>* = nullptr,
std::enable_if_t<4 == sizeof(U)>* = nullptr>
void write_unsigned(U uval) {
std::array<char, 8> buf;
memcpy(buf.data() + 6, small[uval % 100].data(), 2);
memcpy(buf.data() + 4, small[uval / 100 % 100].data(), 2);
memcpy(buf.data() + 2, small[uval / 10000 % 100].data(), 2);
memcpy(buf.data() + 0, small[uval / 1000000 % 100].data(), 2);
if (uval >= 100000000) {
if (uval >= 1000000000) {
memcpy(line.data() + pos, small[uval / 100000000 % 100].data(),
2);
pos += 2;
} else {
line[pos] = char('0' + uval / 100000000);
pos++;
}
memcpy(line.data() + pos, buf.data(), 8);
pos += 8;
} else {
size_t len = calc_len(uval);
memcpy(line.data() + pos, buf.data() + (8 - len), len);
pos += len;
}
}
template <class U,
internal::is_unsigned_int_t<U>* = nullptr,
std::enable_if_t<8 == sizeof(U)>* = nullptr>
void write_unsigned(U uval) {
size_t len = calc_len(uval);
pos += len;
char* ptr = line.data() + pos;
while (uval >= 100) {
ptr -= 2;
memcpy(ptr, small[uval % 100].data(), 2);
uval /= 100;
}
if (uval >= 10) {
memcpy(ptr - 2, small[uval].data(), 2);
} else {
*(ptr - 1) = char('0' + uval);
}
}
template <
class U,
std::enable_if_t<internal::is_unsigned_int128<U>::value>* = nullptr>
void write_unsigned(U uval) {
static std::array<char, 50> buf;
size_t len = 0;
while (uval > 0) {
buf[len++] = char((uval % 10) + '0');
uval /= 10;
}
std::reverse(buf.begin(), buf.begin() + len);
memcpy(line.data() + pos, buf.data(), len);
pos += len;
}
void write_single(const std::string& s) {
for (char c : s) write_single(c);
}
void write_single(const char* s) {
size_t len = strlen(s);
for (size_t i = 0; i < len; i++) write_single(s[i]);
}
template <class T> void write_single(const std::vector<T>& val) {
auto n = val.size();
for (size_t i = 0; i < n; i++) {
if (i) write_single(' ');
write_single(val[i]);
}
}
};
inline std::array<std::array<char, 2>, 100> Printer::small = [] {
std::array<std::array<char, 2>, 100> table;
for (int i = 0; i <= 99; i++) {
table[i][1] = char('0' + (i % 10));
table[i][0] = char('0' + (i / 10 % 10));
}
return table;
}();
inline std::array<unsigned long long, 20> Printer::tens = [] {
std::array<unsigned long long, 20> table;
for (int i = 0; i < 20; i++) {
table[i] = 1;
for (int j = 0; j < i; j++) {
table[i] *= 10;
}
}
return table;
}();
} // namespace yosupo
#line 2 "/home/vscode/yosupo-library/src/yosupo/modint.hpp"
#line 1 "/home/vscode/ac-library/atcoder/modint.hpp"
#line 5 "/home/vscode/ac-library/atcoder/modint.hpp"
#include <numeric>
#line 7 "/home/vscode/ac-library/atcoder/modint.hpp"
#ifdef _MSC_VER
#include <intrin.h>
#endif
#line 1 "/home/vscode/ac-library/atcoder/internal_math.hpp"
#include <utility>
#ifdef _MSC_VER
#include <intrin.h>
#endif
namespace atcoder {
namespace internal {
// @param m `1 <= m`
// @return x mod m
constexpr long long safe_mod(long long x, long long m) {
x %= m;
if (x < 0) x += m;
return x;
}
// Fast modular multiplication by barrett reduction
// Reference: https://en.wikipedia.org/wiki/Barrett_reduction
// NOTE: reconsider after Ice Lake
struct barrett {
unsigned int _m;
unsigned long long im;
// @param m `1 <= m`
explicit barrett(unsigned int m) : _m(m), im((unsigned long long)(-1) / m + 1) {}
// @return m
unsigned int umod() const { return _m; }
// @param a `0 <= a < m`
// @param b `0 <= b < m`
// @return `a * b % m`
unsigned int mul(unsigned int a, unsigned int b) const {
// [1] m = 1
// a = b = im = 0, so okay
// [2] m >= 2
// im = ceil(2^64 / m)
// -> im * m = 2^64 + r (0 <= r < m)
// let z = a*b = c*m + d (0 <= c, d < m)
// a*b * im = (c*m + d) * im = c*(im*m) + d*im = c*2^64 + c*r + d*im
// c*r + d*im < m * m + m * im < m * m + 2^64 + m <= 2^64 + m * (m + 1) < 2^64 * 2
// ((ab * im) >> 64) == c or c + 1
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 long long y = x * _m;
return (unsigned int)(z - y + (z < y ? _m : 0));
}
};
// @param n `0 <= n`
// @param m `1 <= m`
// @return `(x ** n) % m`
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;
}
// Reference:
// M. Forisek and J. Jancina,
// Fast Primality Testing for Integers That Fit into a Machine Word
// @param n `0 <= n`
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);
// @param b `1 <= b`
// @return pair(g, x) s.t. g = gcd(a, b), xa = g (mod b), 0 <= x < b/g
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};
// Contracts:
// [1] s - m0 * a = 0 (mod b)
// [2] t - m1 * a = 0 (mod b)
// [3] s * |m1| + t * |m0| <= b
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
// [3]:
// (s - t * u) * |m1| + t * |m0 - m1 * u|
// <= s * |m1| - t * u * |m1| + t * (|m0| + |m1| * u)
// = s * |m1| + t * |m0| <= b
auto tmp = s;
s = t;
t = tmp;
tmp = m0;
m0 = m1;
m1 = tmp;
}
// by [3]: |m0| <= b/g
// by g != b: |m0| < b/g
if (m0 < 0) m0 += b / s;
return {s, m0};
}
// Compile time primitive root
// @param m must be prime
// @return primitive root (and minimum in now)
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);
// @param n `n < 2^32`
// @param m `1 <= m < 2^32`
// @return sum_{i=0}^{n-1} floor((ai + b) / m) (mod 2^64)
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;
// y_max < m * (n + 1)
// floor(y_max / m) <= n
n = (unsigned long long)(y_max / m);
b = (unsigned long long)(y_max % m);
std::swap(m, a);
}
return ans;
}
} // namespace internal
} // namespace atcoder
#line 1 "/home/vscode/ac-library/atcoder/internal_type_traits.hpp"
#line 7 "/home/vscode/ac-library/atcoder/internal_type_traits.hpp"
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
#line 14 "/home/vscode/ac-library/atcoder/modint.hpp"
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
#line 4 "/home/vscode/yosupo-library/src/yosupo/modint.hpp"
#include <iostream>
namespace atcoder {
template <int MOD>
std::ostream& operator<<(std::ostream& os, const static_modint<MOD>& x) {
return os << x.val();
}
template <int ID>
std::ostream& operator<<(std::ostream& os, const dynamic_modint<ID>& x) {
return os << x.val();
}
} // namespace atcoder
namespace yosupo {
template <int MOD> using static_modint = atcoder::static_modint<MOD>;
template <int ID> using dynamic_modint = atcoder::dynamic_modint<ID>;
using modint998244353 = atcoder::modint998244353;
using modint1000000007 = atcoder::modint1000000007;
using modint = atcoder::modint;
// modint of 2^61 - 1
struct modint61 {
using mint = modint61;
public:
static constexpr long long mod() { return (1ULL << 61) - 1; }
static mint raw(long long v) {
mint x;
x._v = v;
return x;
}
modint61() : _v(0) {}
template <class T, atcoder::internal::is_signed_int_t<T>* = nullptr>
modint61(T v) {
long long x = (long long)(v % (long long)(umod()));
if (x < 0) x += umod();
_v = (unsigned long long)(x);
}
template <class T, atcoder::internal::is_unsigned_int_t<T>* = nullptr>
modint61(T v) {
_v = (unsigned long long)(v % umod());
}
unsigned long long 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) {
__uint128_t t = (__uint128_t) _v * rhs._v;
_v = (unsigned long long)((t >> 61) + (t & umod()));
_v = (_v >= umod()) ? _v - umod() : _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 {
assert(_v);
return pow(umod() - 2);
}
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 long long _v;
static constexpr unsigned long long umod() { return mod(); }
};
} // namespace yosupo
#line 1 "/home/vscode/ac-library/atcoder/convolution.hpp"
#line 9 "/home/vscode/ac-library/atcoder/convolution.hpp"
#line 1 "/home/vscode/ac-library/atcoder/internal_bit.hpp"
#ifdef _MSC_VER
#include <intrin.h>
#endif
#if __cplusplus >= 202002L
#line 10 "/home/vscode/ac-library/atcoder/internal_bit.hpp"
#endif
namespace atcoder {
namespace internal {
#if __cplusplus >= 202002L
using std::bit_ceil;
#else
// @return same with std::bit::bit_ceil
unsigned int bit_ceil(unsigned int n) {
unsigned int x = 1;
while (x < (unsigned int)(n)) x *= 2;
return x;
}
#endif
// @param n `1 <= n`
// @return same with std::bit::countr_zero
int countr_zero(unsigned int n) {
#ifdef _MSC_VER
unsigned long index;
_BitScanForward(&index, n);
return index;
#else
return __builtin_ctz(n);
#endif
}
// @param n `1 <= n`
// @return same with std::bit::countr_zero
constexpr int countr_zero_constexpr(unsigned int n) {
int x = 0;
while (!(n & (1 << x))) x++;
return x;
}
} // namespace internal
} // namespace atcoder
#line 12 "/home/vscode/ac-library/atcoder/convolution.hpp"
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 = countr_zero_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::countr_zero((unsigned int)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[countr_zero(~(unsigned int)(s))];
}
len++;
} else {
// 4-base
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[countr_zero(~(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::countr_zero((unsigned int)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[countr_zero(~(unsigned int)(s))];
}
len--;
} else {
// 4-base
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[countr_zero(~(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 = (int)internal::bit_ceil((unsigned int)(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 {};
int z = (int)internal::bit_ceil((unsigned int)(n + m - 1));
assert((mint::mod() - 1) % z == 0);
if (std::min(n, m) <= 60) return convolution_naive(std::move(a), std::move(b));
return internal::convolution_fft(std::move(a), std::move(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 {};
int z = (int)internal::bit_ceil((unsigned int)(n + m - 1));
assert((mint::mod() - 1) % z == 0);
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>;
int z = (int)internal::bit_ceil((unsigned int)(n + m - 1));
assert((mint::mod() - 1) % z == 0);
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(std::move(a2), std::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;
static constexpr int MAX_AB_BIT = 24;
static_assert(MOD1 % (1ull << MAX_AB_BIT) == 1, "MOD1 isn't enough to support an array length of 2^24.");
static_assert(MOD2 % (1ull << MAX_AB_BIT) == 1, "MOD2 isn't enough to support an array length of 2^24.");
static_assert(MOD3 % (1ull << MAX_AB_BIT) == 1, "MOD3 isn't enough to support an array length of 2^24.");
assert(n + m - 1 <= (1 << MAX_AB_BIT));
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;
// B = 2^63, -B <= x, r(real value) < B
// (x, x - M, x - 2M, or x - 3M) = r (mod 2B)
// r = c1[i] (mod MOD1)
// focus on MOD1
// r = x, x - M', x - 2M', x - 3M' (M' = M % 2^64) (mod 2B)
// r = x,
// x - M' + (0 or 2B),
// x - 2M' + (0, 2B or 4B),
// x - 3M' + (0, 2B, 4B or 6B) (without mod!)
// (r - x) = 0, (0)
// - M' + (0 or 2B), (1)
// -2M' + (0 or 2B or 4B), (2)
// -3M' + (0 or 2B or 4B or 6B) (3) (mod MOD1)
// we checked that
// ((1) mod MOD1) mod 5 = 2
// ((2) mod MOD1) mod 5 = 3
// ((3) mod MOD1) mod 5 = 4
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
#line 7 "H/main.cpp"
using namespace yosupo;
using mint = modint998244353;
#line 2 "H/base.hpp"
#ifdef YOSUPO_AVX2_PRAGMA
#line 5 "H/base.hpp"
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#endif
#line 11 "H/base.hpp"
#include <bitset>
#line 13 "H/base.hpp"
#include <cmath>
#include <cstdio>
#line 17 "H/base.hpp"
#include <map>
#include <queue>
#include <ranges>
#include <set>
#line 24 "H/base.hpp"
using std::abs, std::pow, std::sqrt;
using std::array, std::vector, std::string, std::queue, std::deque;
using std::countl_zero, std::countl_one, std::countr_zero, std::countr_one;
using std::istream, std::ostream, std::cerr, std::endl;
using std::min, std::max, std::swap;
using std::pair, std::tuple, std::bitset;
using std::popcount;
using std::priority_queue, std::set, std::multiset, std::map;
using std::views::iota, std::views::reverse;
namespace ranges = std::ranges;
using ranges::sort, ranges::copy_n;
using uint = unsigned int;
using ll = long long;
using ull = unsigned long long;
constexpr ll TEN(int n) { return (n == 0) ? 1 : 10 * TEN(n - 1); }
template <class T> using V = vector<T>;
template <class T> using VV = V<V<T>>;
#ifdef YOSUPO_LOCAL
inline ostream& operator<<(ostream& os, __int128_t x) {
if (x < 0) {
os << "-";
x *= -1;
}
if (x == 0) {
return os << "0";
}
string s;
while (x) {
s += char(x % 10 + '0');
x /= 10;
}
ranges::reverse(s);
return os << s;
}
inline ostream& operator<<(ostream& os, __uint128_t x) {
if (x == 0) {
return os << "0";
}
string s;
while (x) {
s += char(x % 10 + '0');
x /= 10;
}
ranges::reverse(s);
return os << s;
}
template <class T, class U>
ostream& operator<<(ostream& os, const pair<T, U>& p);
template <class T> ostream& operator<<(ostream& os, const V<T>& v);
template <class T> ostream& operator<<(ostream& os, const deque<T>& v);
template <class T, size_t N>
ostream& operator<<(ostream& os, const array<T, N>& a);
template <class T> ostream& operator<<(ostream& os, const set<T>& s);
template <class T, class U>
ostream& operator<<(ostream& os, const map<T, U>& m);
template <class T, class U>
ostream& operator<<(ostream& os, const pair<T, U>& p) {
return os << "P(" << p.first << ", " << p.second << ")";
}
template <class T> ostream& operator<<(ostream& os, const V<T>& v) {
os << "[";
bool f = false;
for (auto d : v) {
if (f) os << ", ";
f = true;
os << d;
}
return os << "]";
}
template <class T> ostream& operator<<(ostream& os, const deque<T>& v) {
os << "[";
bool f = false;
for (auto d : v) {
if (f) os << ", ";
f = true;
os << d;
}
return os << "]";
}
template <class T, size_t N>
ostream& operator<<(ostream& os, const array<T, N>& a) {
os << "[";
bool f = false;
for (auto d : a) {
if (f) os << ", ";
f = true;
os << d;
}
return os << "]";
}
template <class T> ostream& operator<<(ostream& os, const set<T>& s) {
os << "{";
bool f = false;
for (auto d : s) {
if (f) os << ", ";
f = true;
os << d;
}
return os << "}";
}
template <class T> ostream& operator<<(ostream& os, const multiset<T>& s) {
os << "{";
bool f = false;
for (auto d : s) {
if (f) os << ", ";
f = true;
os << d;
}
return os << "}";
}
template <class T, class U>
ostream& operator<<(ostream& os, const map<T, U>& s) {
os << "{";
bool f = false;
for (auto p : s) {
if (f) os << ", ";
f = true;
os << p.first << ": " << p.second;
}
return os << "}";
}
struct PrettyOS {
ostream& os;
bool first;
template <class T> auto operator<<(T&& x) {
if (!first) os << ", ";
first = false;
os << x;
return *this;
}
};
template <class... T> void dbg0(T&&... t) {
(PrettyOS{cerr, true} << ... << t);
}
#define dbg(...) \
do { \
cerr << __LINE__ << " : " << #__VA_ARGS__ << " = "; \
dbg0(__VA_ARGS__); \
cerr << endl; \
} while (false);
#else
#define dbg(...)
#endif
#line 11 "H/main.cpp"
Scanner sc = Scanner(stdin);
Printer pr = Printer(stdout);
V<mint> conv(VV<mint> pols) {
auto dfs = [&](auto self, int l, int r) {
if (l + 1 == r) return pols[l];
int m = (l + r) / 2;
return atcoder::convolution(self(self, l, m), self(self, m, r));
};
return dfs(dfs, 0, int(pols.size()));
}
int main() {
int n;
sc.read(n);
V<int> c(n);
{
string s;
sc.read(s);
for (int i : iota(0, n)) {
c[i] = (s[i] == 'F' ? 1 : 0);
}
}
using P = pair<int, int>;
VV<P> tr(n);
for (int _ : iota(0, n - 1)) {
int u, v;
sc.read(u, v);
u--; v--;
tr[u].push_back({v, 0});
tr[v].push_back({u, 1});
}
V<int> par(n);
{
auto dfs = [&](auto self, int u, int p) -> void {
for (auto [d, _] : tr[u]) {
if (d == p) continue;
par[d] = 1 - par[u];
self(self, d, u);
}
};
dfs(dfs, 0, -1);
for (int i : iota(0, n)) {
if (par[i]) c[i] = 1 - c[i];
}
}
dbg(c);
dbg(par);
auto dfs = [&](auto self, int u, int p, int pec) -> pair<mint, mint> {
int zc = 0;
VV<mint> pols;
if (c[u] == 1) zc++;
pols.push_back({1, 1});
for (auto [d, ec] : tr[u]) {
if (d == p) continue;
ec ^= par[u];
// dbg(d, u, ec);
auto dp = self(self, d, u, ec);
if (ec == 0) {
zc++;
pols.push_back({dp.second, dp.first});
} else {
pols.push_back({dp.first, dp.second});
}
}
// dbg(u, pols);
auto pol = conv(pols);
// dbg(zc, pol);
mint dp0 = (0 <= zc && zc < int(pol.size())) ? pol[zc] : 0;
zc += pec ? -1 : 1;
mint dp1 = (0 <= zc && zc < int(pol.size())) ? pol[zc] : 0;
// dbg(u, dp0, dp1);
return {dp0, dp1};
};
auto ans = dfs(dfs, 0, -1, 0);
pr.writeln(ans.first.val());
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3668kb
input:
5 SFSFS 2 1 2 3 4 3 4 5
output:
1
result:
ok 1 number(s): "1"
Test #2:
score: 0
Accepted
time: 0ms
memory: 3640kb
input:
4 SFFF 1 2 1 3 1 4
output:
4
result:
ok 1 number(s): "4"
Test #3:
score: 0
Accepted
time: 0ms
memory: 3864kb
input:
7 SSSSFFF 1 2 3 2 4 3 4 5 4 6 2 7
output:
13
result:
ok 1 number(s): "13"
Test #4:
score: 0
Accepted
time: 0ms
memory: 3684kb
input:
2 FS 1 2
output:
1
result:
ok 1 number(s): "1"
Test #5:
score: 0
Accepted
time: 0ms
memory: 3680kb
input:
3 FFF 3 1 3 2
output:
1
result:
ok 1 number(s): "1"
Test #6:
score: 0
Accepted
time: 0ms
memory: 3704kb
input:
4 FFFF 1 2 4 2 2 3
output:
1
result:
ok 1 number(s): "1"
Test #7:
score: 0
Accepted
time: 0ms
memory: 3560kb
input:
5 FFFFF 4 2 2 1 3 1 3 5
output:
1
result:
ok 1 number(s): "1"
Test #8:
score: 0
Accepted
time: 0ms
memory: 3608kb
input:
6 FSSSSF 5 3 2 5 1 2 2 6 4 2
output:
3
result:
ok 1 number(s): "3"
Test #9:
score: 0
Accepted
time: 173ms
memory: 42896kb
input:
199995 FSSFFFSSSFSFFSSSFSSSSSFSFSSSFSFFSSFSFSFFFSSSFSSFSFFSFFFFSSFFSSSFFSFSFFFFFFFFFFFFFSSSFSSFFFSSSFSFSSSFFFSFFSFSSSSFSFSFSFSSFFSFSFFSFFSSFSSSFSFFSSSFFSFFFSFFSFSFSFSFSSSFSSSSFFSSFFFFFSFSSSFFSSSSSSSSFFFSFSFFSSSFSFFFFFSFFFFSSSSSSSFFFSFFSFSSSFSFSFFFFSFSSFSSFFFSSFFFSSFSFFFSSSFSFSSFFSFSFFSFFSSFSFSSSSFFF...
output:
233157276
result:
ok 1 number(s): "233157276"
Test #10:
score: 0
Accepted
time: 171ms
memory: 44096kb
input:
199996 FSSFFSFSSSFFFFFFSFSSFSFFSSFFFFFFFSSSFFSFSSFSSFSFSSFSSSFFFFSFFFFFFSSSSFFFSFSSFSSFFSSFSFFSSSSSFSFFFFSFSFFSFSSFSFSSSSSFSFSSSFFSSFSSFSFFSFFSSFSFSSFSSSFSSSFFSSFFFFSFFSFSFSFFFSFSSSFFSFFSSSSSSSSFSSFSSFSSSSFSSSFSSSFSFFFFFFSFFSSSFSSFFFSFSFSFSSSFSFFSSSSFSSFSFSSFSSFSFFFSSSFFSSFSFSFFSSSFFFFSSSSSSSFSSSFFF...
output:
509139031
result:
ok 1 number(s): "509139031"
Test #11:
score: 0
Accepted
time: 161ms
memory: 43056kb
input:
199997 FFSSSFSSFSFSFSSSSFSFFSSFFFSSFFSSSSSSFSSSFFSSSFFFSFFSFSFSSSFFSSSFSFFFFFSSFFSSFFFFSSSFFFFSSSSFFFSSFFSSSFSFFSFSFSFSFFSSFSFSSSFSSFSSFSFFSSFFFSFSSFSFFSSSFSFFSFFFFSSFFSFSFFFSFSFFSFSFSFFSSFFFSSFSFFSFSSSSSFFFFFSSSSSSSSSFFFFSSFFFSSFFSFSFSSSFSFSFFSSSSFSFSFFFSSFSSFFSFFSSFSSSSSSSFSSSFSSSFSFSSSSFSFFSSSFSS...
output:
917209642
result:
ok 1 number(s): "917209642"
Test #12:
score: 0
Accepted
time: 169ms
memory: 42968kb
input:
199998 FFFSSSSSFSSSFFFFFFSSSSFSSFFFSFSSFFFSFFFFSFFFFFFFSSSFFSFSFFSFSFSFFSSFSFFSFSFSFSFFSSFFSFFFSFSFSSSSFSSSFFFSSSSFFSFFFFSFFFFFFSFSSFSFSSFFSSFSFFSFSSFSFSSFSSSSFSSFFSSFSSSSSSSSFFSFFSSSSSSSSSSSSFFSSFFFFFFSSFFSFFFFSSFFFSFFSSFFFFFFFFSFSSFSSSSFFSFSFFSSSSFSFSFFFSSFSFFFSFFSSFFSSSSSSSFSSSFFFSSFSSSSSFFFFSFSF...
output:
722227522
result:
ok 1 number(s): "722227522"
Test #13:
score: 0
Accepted
time: 173ms
memory: 43768kb
input:
199999 FSFSFSFSSFSSSFSSFFSFSFFFFFFSSFSSSFSFSSFFSSSFSSSFSSSFSFFSFSFFFFFFSFFFSFSSSSSSFFSFFSFFFFFFFSSSFFFSFFSSSFSFSSSSSFSSFSFSFFSFSFFSSFSFSSFFSFSSSSSSSSSSSFFSSSSSFSFFFSFFSFFFSFFFFFSFFFFSSSSSSSFFFFSFFSSSFSFSSFFFFSSFSFSFSSSFSSSSFSSFSFFSFFFSSFSSFFFSFSFFFSFFFFSFSFSSSSSSSFFSSFFFSSFSSSSSFSSSFFFFFSFSSSFFFSFFS...
output:
22915769
result:
ok 1 number(s): "22915769"
Test #14:
score: 0
Accepted
time: 161ms
memory: 43224kb
input:
200000 SFSSSSFSFFSFFFSFSFSSSSSSSSFFSSSFFSFFSSFFFFFFFFFFSSFFFFFFFSFFSFFFFFSSSFFFSFFSFFFFFSSFFSFFFFSSSFSFFSFSSFSFFFFFFFSFFSSFSSFSSFFSSFSSSSSFSSSSFFSFFFFFSSFSFFSFFFSSSSFFSFFFFFSSSSSSFFFSFFSFFFSFFFFFFSSSFSFFFFFSFSSSFFSSSFSFSFSSSFFFFFSSFFFSFSFFFSFSSSSSFSFFSFSSFFSSFSFFFFFSSFSFSFFFSSSFSFFFFSSSSFFFSSFFSFSFS...
output:
246807982
result:
ok 1 number(s): "246807982"
Test #15:
score: 0
Accepted
time: 188ms
memory: 32304kb
input:
199980 SFSFFSSSSSFSSSFFFSSSSFFSSFSSSSFFFFSSFFSSFFFFSFSSFFSSSSSFFFSSSSFFFFFFFSFFSFSSSFSFFFFSFSFFSFSFFSFSFSFSFFSSSSFFSSFSSFFFFSFSFFFFFSSSFSFFFFFFSFFSSSFFSSSFFSSSFSFSFSSSFSSSFSSSSSFSFFFSSSFSSSFFSFSFSFFFSSSSFSSSFSSFSSSFFFFFSFFSFFFFSSSFFSSFFSSSFSSSFSSSFSSFSFSSFSFSFFSSSSFSSFSSSSSSSFSSSSSSSFSSSSSFFSFFFSFFS...
output:
854698427
result:
ok 1 number(s): "854698427"
Test #16:
score: 0
Accepted
time: 141ms
memory: 32424kb
input:
199981 SFFSSFSSFSSSFSSSFSSFSFSSFFFFFFFFSFFFFFSFFFSSFSFSFFSSFSFFFFFSFFFFSSSFFSSFSSFSSSFFSFFSSSFFSSSFSFSSFFFSSFFFSSSSFFSFSFFSFSSFSFSFSFSSSSFFSSSSFSSFSSSSFSFSSSFSFSFFFSSSFSFSFFFFSSSSSSFFSSFSSFSFSFFSFFSSSSSSFFSFFSFFSSFFSFSFSFSFSSSFFSFFFSSFFSSFFFFSSFSSFSSSSSFFSSSFFSSFFSFFFSSSSSFSSFFSFSFFSFFSFSSSFFFSFSSSS...
output:
990783292
result:
ok 1 number(s): "990783292"
Test #17:
score: 0
Accepted
time: 143ms
memory: 26792kb
input:
199982 SFFSSSFSFSSSFFFFSSFFFFSFSSSSFFFSFSFFSSFFSSFSSSFSFSFSSFFSSSSSFSSFSFFFSSFSFSSSSSSFSSFSFSFSFFSSSSFSFSSSSFSSSSSFSSSSSSFSFFSFSSSFSFSSSFFFSFSSSFSSSFFFSSFFSSFSSFSFFSSSSSFSSSFFSFSFSFSFSFFSSFFSFFFSSSFSFFFSFFSSSFSSSFSSSFSFSSSFFSSSSFSFSFFSFFSFSSFSSFFFSFFFSFFFSSFSFFSFSSSFSSFFSSFSSFSSSSSSSSFFFSSFFFFSFFSSF...
output:
535880887
result:
ok 1 number(s): "535880887"
Test #18:
score: 0
Accepted
time: 148ms
memory: 34960kb
input:
199983 SSFSFFSSSFFFFSSSSSFSFFFSFSFFSFSSSSSFSFFSFSSFFSSSFFFSFFFSFFFFSFFSFFSFFSSSSSSSSFFSFSSFSSFSFFFSFFSFFSSSFFFFFSFSSFSFFFFFSFFFFFSSSFSFSFSSSSSFSSFSSSSSFSSSFSFSSSFFFFSSFSSFSSSSSFFFFSSFFSSSSSSFFSSFFSFFFSFFSFSFSFFSFFFSFSFFFSFSSFFSFFFSSSFSFFSSSSFSSSFFSSFSFSFFFFFFFSSSSSFFFSSSSSSSSFFFFSFFSSSFSSFSFSFSSFSFS...
output:
29372676
result:
ok 1 number(s): "29372676"
Test #19:
score: 0
Accepted
time: 191ms
memory: 29204kb
input:
199984 SSSFFSSSSFFFFFFFFFFFSSSFSSSSSSSFSSFFSSFFSFFFFFSSFSFFFFFSSSSFFSSSSSFSSSFSFSFFSSSSFSSFFSSFFSFFSSSFSFSFSFSSFSSFFFFSFFFSSSSSFFSSSFSFFFSSFFFSFFSFSSSSFSFSSFSFSFSFFFSSFFFFFFFFSSFSFFFSFSSSSFFSFSSFSFSFSFSFSSSSSSSFFFSFSSSFFSSFFFFSSFSSFFSFFSSSSFFFFFSSSSSFFFSSSFSSFFSFFSFFSFSFSSSSFFSFSSFSFFFSSSFFFFFFSFSFF...
output:
525200447
result:
ok 1 number(s): "525200447"
Test #20:
score: 0
Accepted
time: 140ms
memory: 28676kb
input:
199985 SSSFSSFSFFFFSFSFFFFSFSSSFSFFSSSFFFSFSFSFSFSSSFFSFSFFSSFFFFFFFFFSFFSSFSSFSFSFSFFSSSFFSSSFSFFFFFFFSSSFFFFFSSSSFSFFFSFFFSSSSSSSSFFSFFSSFFFSSSFSSFFFSSFFSFSFSSSFSFFSSFFFFSFFSFSSSSFSFFSSSSSFFSFSFFFSSSFFSSSFFFSSFSFFFSFFFFFSFFSFFSSSFSFFFSSSFSSFFFSSFFSSFSSSSFFFFFSSFFSFSFFFSSFFFFFSFSSFFFFSSSFFFSFFSFSFF...
output:
497376383
result:
ok 1 number(s): "497376383"
Test #21:
score: 0
Accepted
time: 162ms
memory: 43040kb
input:
199986 SFSSSFSSFFSSSSFSFFFFFSFSSFFSFSSSSFSFFSSSFSFSFSFSFFSFFSFFFSSFSSSSSFSSSSSFFFSFFSSSFSFFSSSSSFFSFSSFSSSFSFSFSSFFSFSFFFFSFFFSSSFSFFFSFSSSFSFFFSSFSSSSFSSSFFSFFFFFSFFSFFSSSSSSSFSSSFSFSFSSSSFSFSSFSSSFFSFFFFFSFFFSFSSSSSSFSFSFSSFFSSFSSSFFSFSFFFSFFSSSFFFFSFFSFFFSFSFSSFFFFSSSSSSFFFSSSSFSFSSFFSFSFFSFFFFSS...
output:
494235109
result:
ok 1 number(s): "494235109"
Test #22:
score: 0
Accepted
time: 157ms
memory: 31512kb
input:
199987 FFFSSSSSSSSSSFSFSFFFSFSFFFSFFSSSFFFSFFFFSSSFFSSSFSSFSSFSSFFFFSFSSSFFFSFFSFFFFFFSFSFFFSSSSSFSSFFSSFSFFFFSFSSSSFSSFFFFFFFSFFFSFSFSFSSFSFSSFFFSSSFSFFSFSFFFFSSFSSFSFFFSSFSFSSFFFSSFSSFSSFFFFSSFFSFFSFSFFFFFFSSFFSFSFSFFSFFSFSFFFFSSSFSSSFSFFSSFSFFFSSFSSSFFSSSFFFFFSFFFSSSFSSSFFFFSFSSFFSFFFSFFFSSFFFFSF...
output:
390614605
result:
ok 1 number(s): "390614605"
Test #23:
score: 0
Accepted
time: 160ms
memory: 34420kb
input:
199988 FFFSFFFSSSFSSSFSSFFSSFFSSFFSFFSSSSSSFSFFFFFFSSSSFSSFSFFSFSSSFFFFFFSFSSSSFSSSFSSSSFSFSSSFFFFFFSSSFSSFSSSFFSFFFSFFFSFSSSSFFFFFFSFFSSFFSSSSSSSSSFSFSFFSFFFFFSSFSSFSSSFSFSFFSSFFFFFFSFFSSSSSFSFSSFFSSSSFFFFSSSFSFFSFFSSFSSFSSFSSSFFSFSSSSSFFSFSFSFFFSSSFFFSFFSFSSSFSFFSFFSFFSSFFFSSFSSFSFFFFSSFSSFSSSFFFF...
output:
808212748
result:
ok 1 number(s): "808212748"
Test #24:
score: 0
Accepted
time: 168ms
memory: 33364kb
input:
199989 FSFFFSSSFSFFFSSFFSFFFFFFFFSFSFSFFSFSFFSSSFSFFFSSFFFSFFFSSFFSSSSFSFFFFSFSSSSSFFFSSFSSFSSSFSFFSFFSFFSSFSFSFSFSSFFSFFFFSSSFSSFFFSFFSSFFSFSFFFFFSSFSFFSFFFFFFFFFSSFSSSSFFSSSSFSSSSFSSFFSSSFFFSFFFFSSFFFSFSFFSFSSFFFFSSSFFSSFFFSSFFSSFFFSSSFSSFFFFSSSSFSSFSSFFSFFSSFSSFFFSFFSSSSFSSFFFSSFFFSSSSSSSSSSSFFFS...
output:
245218183
result:
ok 1 number(s): "245218183"
Test #25:
score: 0
Accepted
time: 0ms
memory: 3668kb
input:
20 FFSSFSSSFFFFFSFSSFSF 10 19 9 18 1 4 3 6 16 5 15 18 20 7 10 7 15 13 7 18 12 6 5 15 18 17 14 9 11 10 8 18 5 6 2 15 18 4
output:
30
result:
ok 1 number(s): "30"
Test #26:
score: 0
Accepted
time: 0ms
memory: 3912kb
input:
20 FSFSFFFSFFFSFFSFFFSS 8 6 6 18 16 8 7 8 11 1 9 16 3 5 7 11 19 8 13 20 12 1 9 14 4 9 1 15 10 11 7 5 7 17 5 2 13 10
output:
44
result:
ok 1 number(s): "44"
Test #27:
score: 0
Accepted
time: 0ms
memory: 3904kb
input:
20 FSFSSSSSSFSSSFFFFFSF 19 17 16 2 6 14 4 8 13 19 7 9 14 3 5 7 5 12 5 19 2 3 17 6 11 8 15 19 11 5 10 8 2 1 3 20 18 5
output:
101
result:
ok 1 number(s): "101"
Test #28:
score: 0
Accepted
time: 0ms
memory: 3508kb
input:
20 FFFFSFSSSSSSSSSSSFSF 19 16 13 10 10 9 10 18 1 3 8 20 4 16 17 20 16 6 17 15 14 15 12 1 5 18 18 2 11 7 1 15 11 12 10 15 16 15
output:
405
result:
ok 1 number(s): "405"
Test #29:
score: 0
Accepted
time: 0ms
memory: 3676kb
input:
20 FFSFFFFSFSFFSFFFSSSS 6 15 4 8 6 14 12 14 2 7 13 4 1 4 12 16 10 16 14 13 5 15 17 16 14 18 9 14 14 20 16 2 11 6 3 6 11 19
output:
81
result:
ok 1 number(s): "81"
Test #30:
score: 0
Accepted
time: 0ms
memory: 3612kb
input:
20 FFSSFSSSFSFFSSSSSSFF 12 9 12 7 4 8 12 19 8 12 17 19 6 10 1 13 15 5 18 10 16 9 17 15 2 9 3 18 8 11 20 10 13 15 8 6 2 14
output:
129
result:
ok 1 number(s): "129"
Test #31:
score: 0
Accepted
time: 0ms
memory: 3608kb
input:
20 FSSSSFSSSSFFFFFFFSFS 2 14 17 10 5 3 15 16 19 1 9 10 19 15 11 2 12 11 16 4 13 20 8 7 18 20 15 18 6 4 14 16 5 15 9 16 8 14
output:
21
result:
ok 1 number(s): "21"
Test #32:
score: 0
Accepted
time: 0ms
memory: 3604kb
input:
20 FSFSSSFSSFSSFFSSFSFS 16 9 8 10 11 13 12 11 3 19 16 14 8 12 7 18 5 8 19 2 20 7 4 18 17 20 14 11 6 20 9 15 19 12 18 11 1 16
output:
129
result:
ok 1 number(s): "129"
Test #33:
score: 0
Accepted
time: 0ms
memory: 3576kb
input:
20 FSFFSFSSFFSSFSFFSFFF 12 20 2 6 13 15 8 2 4 19 10 1 11 15 11 2 1 7 3 4 18 6 10 4 2 4 12 9 14 8 17 5 5 10 9 16 10 12
output:
1366
result:
ok 1 number(s): "1366"
Test #34:
score: 0
Accepted
time: 0ms
memory: 3680kb
input:
20 FFFFFSSFFSSFFFFSFSSF 6 7 7 16 14 7 8 13 17 19 1 15 4 2 5 1 6 3 7 17 12 15 3 10 7 20 8 14 9 15 3 18 11 7 4 19 7 5
output:
58
result:
ok 1 number(s): "58"
Test #35:
score: 0
Accepted
time: 2ms
memory: 4000kb
input:
4269 SFFFSFSSSSFFFFSFFFSFFSSFSFSSFSSSFSFFFSFSFSSFFFSFFSFFSFSSSFFSSSSFSFFFFFFFSFSSFFFSFFSFFFFSFFFFFSSFFSFFFFSSSFSSSSSFFFSSSSFFFSSFFFSSSSSSFFSFSSSFFFSSSSFSFSSFFFSSFSFSSSSFFFSSSFFFSSSFSSFFSSSSSSFFFFSFFSSSSFFSSSFFFFSFFFFSSFFSFFFSFSFFSFFFFFFSFSSSSFSFSFSSSFFSFFFSSSSFSFFFSSSSSFFSSSSFSSFSSSFSFFFSFSSFFSSFFFF...
output:
159892112
result:
ok 1 number(s): "159892112"
Test #36:
score: 0
Accepted
time: 2ms
memory: 3940kb
input:
4269 SFSFFSFSFFFFSSFSSFSSSSFSFFFFFSSSSSFFFFFFSFFSSFSFFSFFFSSSFSSFFFFSFSSFSFFFFSFSSSSSFFSFFFFFSSFFFFFSFSFSSFFFSFFFSFSSFFFSFFSFFFSFFFFSSSSSFSFSSFFFFFFFSFSFSSFSFSSSFFFSFSSFSSFSSSFFSFFFFFFFSFFFSSSSSFFFFFFSSFFFFFSSFFFFSFSSSFSFSFSSSFSFSSFSFSFFFSSSSFFFFSSFSSFSSFSFSFSSSFFFFSSFSFSSSSFSFSSFSSSFFFSFSFSFSSSFFFF...
output:
856340324
result:
ok 1 number(s): "856340324"
Test #37:
score: 0
Accepted
time: 2ms
memory: 4000kb
input:
4269 SFSSFFFSFFSFSSSFSFSSSSFSSFSSSSSFFSSFFSSSSFSSFSFFFFSSSSSSSFFFFSSSSFSSFFSSSSFSSFFSSFFFSSSFSFFSSSSSFFFSFFSSFFSSFSFSFSFFFFFFSFSFFSFSFFSFSFFSFSSSFSSFFFSSFSFSFFFSFFFSSSFFSFFFSSSFSSFFFSSFSSSSSSSSFSSSSFSFFSSSFFFFFSSSFFFSFFFSFSSSFFFFFFSSFSSFSFFSFSFSFSFSFFSSFSSSSSFSFSSFSFFSSFFSFSSSSSFSSFSFSFSSSSSFSSSFSSF...
output:
812166003
result:
ok 1 number(s): "812166003"
Test #38:
score: 0
Accepted
time: 2ms
memory: 4012kb
input:
4269 SSSSFSSSSFSSSFFSFFSFFFSFFSFFSSFFSFFFFFSSFSFFFSFFFSSSFSSFFSSFSFFSFFFSSFFSFSSSSSSSFSFFFSSSSFFSFFSSFSFSSFFFFFSFSSFFSFFSSSFSSSSFFSFFFFSFSSFFSFSFFFFSSFFFFSFSFSSSFFFSSFSSFSSSSFSSFFSSFSSFSSFFSSFFSSFSSSSFFSSFFSSFSSFSSFSSFFSFSSFFSFSFFSFSFFSFSSFSFFSSSFFFFSSFFSFFSSFFSSFSFFSSSSFFFSFSFSSFFSFSSFSFSFSSFFSSFSS...
output:
913190270
result:
ok 1 number(s): "913190270"
Test #39:
score: 0
Accepted
time: 2ms
memory: 3888kb
input:
4269 SSFSSSFSFFFSSSSFFSSSFFFSSSFSSFFSFFSSSSFFSSSFSFSFFFSSFFSFFFFFFSFSSSSSFFSSFFSSSFFFFSFSSSSSFSFFSSFSSFFSFFFSFFFSSFFSSFFFSSSSFSSSSSFFFFSFSFFSFSFSFFSFSFSSSFSSSFSSFSSSFFSSFSFSSSFSFSSSFFSFSFSSSFFSFFSFFFFFFSSSSFFSSSSFFFFSFSFFFSFFFSSFSFFFSFSSSFFFSFSFSSSSSFFFSSSSFFFSSSFSSSSFSSSFFSSFSSFSFSSSFFSSSSSSFFSSSSS...
output:
963325596
result:
ok 1 number(s): "963325596"
Test #40:
score: 0
Accepted
time: 76ms
memory: 16864kb
input:
199980 SFSFFSSSSSFSSSFFFSSSSFFSSFSSSSFFFFSSFFSSFFFFSFSSFFSSSSSFFFSSSSFFFFFFFSFFSFSSSFSFFFFSFSFFSFSFFSFSFSFSFFSSSSFFSSFSSFFFFSFSFFFFFSSSFSFFFFFFSFFSSSFFSSSFFSSSFSFSFSSSFSSSFSSSSSFSFFFSSSFSSSFFSFSFSFFFSSSSFSSSFSSFSSSFFFFFSFFSFFFFSSSFFSSFFSSSFSSSFSSSFSSFSFSSFSFSFFSSSSFSSFSSSSSSSFSSSSSSSFSSSSSFFSFFFSFFS...
output:
131662118
result:
ok 1 number(s): "131662118"
Test #41:
score: 0
Accepted
time: 73ms
memory: 16984kb
input:
199981 SFFSSFSSFSSSFSSSFSSFSFSSFFFFFFFFSFFFFFSFFFSSFSFSFFSSFSFFFFFSFFFFSSSFFSSFSSFSSSFFSFFSSSFFSSSFSFSSFFFSSFFFSSSSFFSFSFFSFSSFSFSFSFSSSSFFSSSSFSSFSSSSFSFSSSFSFSFFFSSSFSFSFFFFSSSSSSFFSSFSSFSFSFFSFFSSSSSSFFSFFSFFSSFFSFSFSFSFSSSFFSFFFSSFFSSFFFFSSFSSFSSSSSFFSSSFFSSFFSFFFSSSSSFSSFFSFSFFSFFSFSSSFFFSFSSSS...
output:
357767781
result:
ok 1 number(s): "357767781"
Test #42:
score: 0
Accepted
time: 80ms
memory: 16788kb
input:
199982 SFFSSSFSFSSSFFFFSSFFFFSFSSSSFFFSFSFFSSFFSSFSSSFSFSFSSFFSSSSSFSSFSFFFSSFSFSSSSSSFSSFSFSFSFFSSSSFSFSSSSFSSSSSFSSSSSSFSFFSFSSSFSFSSSFFFSFSSSFSSSFFFSSFFSSFSSFSFFSSSSSFSSSFFSFSFSFSFSFFSSFFSFFFSSSFSFFFSFFSSSFSSSFSSSFSFSSSFFSSSSFSFSFFSFFSFSSFSSFFFSFFFSFFFSSFSFFSFSSSFSSFFSSFSSFSSSSSSSSFFFSSFFFFSFFSSF...
output:
927723161
result:
ok 1 number(s): "927723161"
Test #43:
score: 0
Accepted
time: 82ms
memory: 16724kb
input:
199983 SSFSFFSSSFFFFSSSSSFSFFFSFSFFSFSSSSSFSFFSFSSFFSSSFFFSFFFSFFFFSFFSFFSFFSSSSSSSSFFSFSSFSSFSFFFSFFSFFSSSFFFFFSFSSFSFFFFFSFFFFFSSSFSFSFSSSSSFSSFSSSSSFSSSFSFSSSFFFFSSFSSFSSSSSFFFFSSFFSSSSSSFFSSFFSFFFSFFSFSFSFFSFFFSFSFFFSFSSFFSFFFSSSFSFFSSSSFSSSFFSSFSFSFFFFFFFSSSSSFFFSSSSSSSSFFFFSFFSSSFSSFSFSFSSFSFS...
output:
120451617
result:
ok 1 number(s): "120451617"
Test #44:
score: 0
Accepted
time: 83ms
memory: 17064kb
input:
199984 SSSFFSSSSFFFFFFFFFFFSSSFSSSSSSSFSSFFSSFFSFFFFFSSFSFFFFFSSSSFFSSSSSFSSSFSFSFFSSSSFSSFFSSFFSFFSSSFSFSFSFSSFSSFFFFSFFFSSSSSFFSSSFSFFFSSFFFSFFSFSSSSFSFSSFSFSFSFFFSSFFFFFFFFSSFSFFFSFSSSSFFSFSSFSFSFSFSFSSSSSSSFFFSFSSSFFSSFFFFSSFSSFFSFFSSSSFFFFFSSSSSFFFSSSFSSFFSFFSFFSFSFSSSSFFSFSSFSFFFSSSFFFFFFSFSFF...
output:
423303699
result:
ok 1 number(s): "423303699"
Test #45:
score: 0
Accepted
time: 85ms
memory: 16740kb
input:
199985 SSSFSSFSFFFFSFSFFFFSFSSSFSFFSSSFFFSFSFSFSFSSSFFSFSFFSSFFFFFFFFFSFFSSFSSFSFSFSFFSSSFFSSSFSFFFFFFFSSSFFFFFSSSSFSFFFSFFFSSSSSSSSFFSFFSSFFFSSSFSSFFFSSFFSFSFSSSFSFFSSFFFFSFFSFSSSSFSFFSSSSSFFSFSFFFSSSFFSSSFFFSSFSFFFSFFFFFSFFSFFSSSFSFFFSSSFSSFFFSSFFSSFSSSSFFFFFSSFFSFSFFFSSFFFFFSFSSFFFFSSSFFFSFFSFSFF...
output:
525376118
result:
ok 1 number(s): "525376118"
Test #46:
score: 0
Accepted
time: 81ms
memory: 17104kb
input:
199986 SFSSSFSSFFSSSSFSFFFFFSFSSFFSFSSSSFSFFSSSFSFSFSFSFFSFFSFFFSSFSSSSSFSSSSSFFFSFFSSSFSFFSSSSSFFSFSSFSSSFSFSFSSFFSFSFFFFSFFFSSSFSFFFSFSSSFSFFFSSFSSSSFSSSFFSFFFFFSFFSFFSSSSSSSFSSSFSFSFSSSSFSFSSFSSSFFSFFFFFSFFFSFSSSSSSFSFSFSSFFSSFSSSFFSFSFFFSFFSSSFFFFSFFSFFFSFSFSSFFFFSSSSSSFFFSSSSFSFSSFFSFSFFSFFFFSS...
output:
46878101
result:
ok 1 number(s): "46878101"
Test #47:
score: 0
Accepted
time: 76ms
memory: 16788kb
input:
199987 FFFSSSSSSSSSSFSFSFFFSFSFFFSFFSSSFFFSFFFFSSSFFSSSFSSFSSFSSFFFFSFSSSFFFSFFSFFFFFFSFSFFFSSSSSFSSFFSSFSFFFFSFSSSSFSSFFFFFFFSFFFSFSFSFSSFSFSSFFFSSSFSFFSFSFFFFSSFSSFSFFFSSFSFSSFFFSSFSSFSSFFFFSSFFSFFSFSFFFFFFSSFFSFSFSFFSFFSFSFFFFSSSFSSSFSFFSSFSFFFSSFSSSFFSSSFFFFFSFFFSSSFSSSFFFFSFSSFFSFFFSFFFSSFFFFSF...
output:
995576278
result:
ok 1 number(s): "995576278"
Test #48:
score: 0
Accepted
time: 73ms
memory: 17036kb
input:
199988 FFFSFFFSSSFSSSFSSFFSSFFSSFFSFFSSSSSSFSFFFFFFSSSSFSSFSFFSFSSSFFFFFFSFSSSSFSSSFSSSSFSFSSSFFFFFFSSSFSSFSSSFFSFFFSFFFSFSSSSFFFFFFSFFSSFFSSSSSSSSSFSFSFFSFFFFFSSFSSFSSSFSFSFFSSFFFFFFSFFSSSSSFSFSSFFSSSSFFFFSSSFSFFSFFSSFSSFSSFSSSFFSFSSSSSFFSFSFSFFFSSSFFFSFFSFSSSFSFFSFFSFFSSFFFSSFSSFSFFFFSSFSSFSSSFFFF...
output:
140483963
result:
ok 1 number(s): "140483963"
Test #49:
score: 0
Accepted
time: 82ms
memory: 16764kb
input:
199989 FSFFFSSSFSFFFSSFFSFFFFFFFFSFSFSFFSFSFFSSSFSFFFSSFFFSFFFSSFFSSSSFSFFFFSFSSSSSFFFSSFSSFSSSFSFFSFFSFFSSFSFSFSFSSFFSFFFFSSSFSSFFFSFFSSFFSFSFFFFFSSFSFFSFFFFFFFFFSSFSSSSFFSSSSFSSSSFSSFFSSSFFFSFFFFSSFFFSFSFFSFSSFFFFSSSFFSSFFFSSFFSSFFFSSSFSSFFFFSSSSFSSFSSFFSFFSSFSSFFFSFFSSSSFSSFFFSSFFFSSSSSSSSSSSFFFS...
output:
85945824
result:
ok 1 number(s): "85945824"
Test #50:
score: 0
Accepted
time: 79ms
memory: 16744kb
input:
199990 FSSFFFFFFSSFFFFFFFFSFSFSSFSSFFFFSSFFFSFFFFFFSSSFSSFFFSFFSFFFFSSSSSSFSFFFSFSSSSSSSFSSSSFSFSFFSSSSFSSSSSFSSSSFFFSFSSSSSSFSFSFSFSFSFSSFSSFSFSSFSSFSSFSSSFFSFFFSSSFSFFSSSSFFFSSSFSFFSFSSSSSFSFFFFFSFSFSFSSSSSSSSSSSFSFSFFFFSFSFSFSFSSSSFFSFSSFFSSFFFFFFFSFSSFSSFFFSFFSFFSFFFSSFFSSFFSSSSFSFFFSFFFSFSSFSFF...
output:
837172100
result:
ok 1 number(s): "837172100"
Test #51:
score: 0
Accepted
time: 82ms
memory: 16884kb
input:
199991 FFSFFSSSFSFSSFSSSFSFSFSFFFFFFFFFFSSFSFSSSSSSSFSFSFSFSSFFFSSSFSFSFFFFFFFSFSFSSFFSSFSSFSSFSSFSFFFSFFSSFSSFFSSSFFSSSFSFSFFFFSSFFSFSFSSFSFFFSFFFSFSFSSSFFFFFFSFSSSFSFFFSSFSFFSSSFFFFSSSSSFFFSSFSSFFSFFFFSSSFSFFSSSFSFFFFFFSFSSFSSSSFFSFFFFFFFSFSFSFFSSFSSSFFSSFSFSSSSSSFFSSFSSSFSSSFFSFFFFFFFSFSFFSSSFSFS...
output:
582784115
result:
ok 1 number(s): "582784115"
Test #52:
score: 0
Accepted
time: 80ms
memory: 17040kb
input:
199992 FFFSFFSSSFFSSSFFSSSFFFSFSFFSSFFFSFFFSSSFFSFSFFFFSFSFFSFSSFSSSFFSSSSFSFSSSSFFSSSSFFFSSSSFSFFSSSFSSSSFSFFSFSFFSSFSSFSSFFSFSFSFFSFFSSSSSSSSFSSSSSFFFSFSFFSFFSSSSSFSSFSFFSFSFFFFSSSFSSSSSFSSSSSSFSSSSSFFSFSSFSSFSSSSSFSFSSSSFFSFFSFFFFSSFFFFFFFFFFSSSSSFSSFFFSFFFFSFSSFSSSFSSSFFSSFSSSSSFFSSSSFFFSSFSFSSF...
output:
459791581
result:
ok 1 number(s): "459791581"
Test #53:
score: 0
Accepted
time: 79ms
memory: 16884kb
input:
199993 FFFSSSFSSFSSSFSSSSSSFFFSFSSSSSFSFFFSSFFFSFSFSFFFSSSSSFFSSSFSFSSSFSFFFFFSFSSFSFFSSFFSFSSSSSFFSFSFSSSFFFSFSSSSFFFFSSSFFSSFSFSFFSFFSFSSFFSSSFFFSSSSSSFFSFSFFFFSSFSSFFSFFSFFFSFFSFSSFFSSSSFFSSSFSFFFSFSFFFSFFSFSSFFSFFFFSSFFSFSFSFSFSSSSFSSFFSFFFFSSSFSSFFFFFFSSSSFSFSFSFFFFSSFFSSSSFSFSFSFSSSFSSFSFFSSSF...
output:
632483050
result:
ok 1 number(s): "632483050"
Test #54:
score: 0
Accepted
time: 74ms
memory: 16968kb
input:
199994 FSFSSSSSFFSFSSFFFSSFSFSFSSFFSSFSFFSSSSFSSFFFSSFFSFSSSFFFFFSSSFFFSFSSSFSFSFSFFSSFSSFSSSSSFSFFFSFFSFSFSFFSSSFFFFFSSFSSFSFFFSSFFFFFSFSSFFSFSFSSSFFFSSSSFSSFSSFSSFSFFFFFSFSSFSSFFSSSFSFSSFSSSSFSFFSFFSSFFFSSSFFSSFSFSFSFSSSSFSFFFFFFSFFSSSSSSSSFSSSFFFFFFSSSSFFFSSFSFSSSSFSSSSSSFSFSSSSFFSFFFSSSSSSFFSFSS...
output:
198965372
result:
ok 1 number(s): "198965372"
Test #55:
score: 0
Accepted
time: 83ms
memory: 16720kb
input:
199995 FSSFFFSSSFSFFSSSFSSSSSFSFSSSFSFFSSFSFSFFFSSSFSSFSFFSFFFFSSFFSSSFFSFSFFFFFFFFFFFFFSSSFSSFFFSSSFSFSSSFFFSFFSFSSSSFSFSFSFSSFFSFSFFSFFSSFSSSFSFFSSSFFSFFFSFFSFSFSFSFSSSFSSSSFFSSFFFFFSFSSSFFSSSSSSSSFFFSFSFFSSSFSFFFFFSFFFFSSSSSSSFFFSFFSFSSSFSFSFFFFSFSSFSSFFFSSFFFSSFSFFFSSSFSFSSFFSFSFFSFFSSFSFSSSSFFF...
output:
553909431
result:
ok 1 number(s): "553909431"
Test #56:
score: 0
Accepted
time: 76ms
memory: 16844kb
input:
199996 FSSFFSFSSSFFFFFFSFSSFSFFSSFFFFFFFSSSFFSFSSFSSFSFSSFSSSFFFFSFFFFFFSSSSFFFSFSSFSSFFSSFSFFSSSSSFSFFFFSFSFFSFSSFSFSSSSSFSFSSSFFSSFSSFSFFSFFSSFSFSSFSSSFSSSFFSSFFFFSFFSFSFSFFFSFSSSFFSFFSSSSSSSSFSSFSSFSSSSFSSSFSSSFSFFFFFFSFFSSSFSSFFFSFSFSFSSSFSFFSSSSFSSFSFSSFSSFSFFFSSSFFSSFSFSFFSSSFFFFSSSSSSSFSSSFFF...
output:
532351273
result:
ok 1 number(s): "532351273"
Test #57:
score: 0
Accepted
time: 77ms
memory: 17032kb
input:
199997 FFSSSFSSFSFSFSSSSFSFFSSFFFSSFFSSSSSSFSSSFFSSSFFFSFFSFSFSSSFFSSSFSFFFFFSSFFSSFFFFSSSFFFFSSSSFFFSSFFSSSFSFFSFSFSFSFFSSFSFSSSFSSFSSFSFFSSFFFSFSSFSFFSSSFSFFSFFFFSSFFSFSFFFSFSFFSFSFSFFSSFFFSSFSFFSFSSSSSFFFFFSSSSSSSSSFFFFSSFFFSSFFSFSFSSSFSFSFFSSSSFSFSFFFSSFSSFFSFFSSFSSSSSSSFSSSFSSSFSFSSSSFSFFSSSFSS...
output:
320626910
result:
ok 1 number(s): "320626910"
Test #58:
score: 0
Accepted
time: 82ms
memory: 16784kb
input:
199998 FFFSSSSSFSSSFFFFFFSSSSFSSFFFSFSSFFFSFFFFSFFFFFFFSSSFFSFSFFSFSFSFFSSFSFFSFSFSFSFFSSFFSFFFSFSFSSSSFSSSFFFSSSSFFSFFFFSFFFFFFSFSSFSFSSFFSSFSFFSFSSFSFSSFSSSSFSSFFSSFSSSSSSSSFFSFFSSSSSSSSSSSSFFSSFFFFFFSSFFSFFFFSSFFFSFFSSFFFFFFFFSFSSFSSSSFFSFSFFSSSSFSFSFFFSSFSFFFSFFSSFFSSSSSSSFSSSFFFSSFSSSSSFFFFSFSF...
output:
318058822
result:
ok 1 number(s): "318058822"
Test #59:
score: 0
Accepted
time: 78ms
memory: 16936kb
input:
199999 FSFSFSFSSFSSSFSSFFSFSFFFFFFSSFSSSFSFSSFFSSSFSSSFSSSFSFFSFSFFFFFFSFFFSFSSSSSSFFSFFSFFFFFFFSSSFFFSFFSSSFSFSSSSSFSSFSFSFFSFSFFSSFSFSSFFSFSSSSSSSSSSSFFSSSSSFSFFFSFFSFFFSFFFFFSFFFFSSSSSSSFFFFSFFSSSFSFSSFFFFSSFSFSFSSSFSSSSFSSFSFFSFFFSSFSSFFFSFSFFFSFFFFSFSFSSSSSSSFFSSFFFSSFSSSSSFSSSFFFFFSFSSSFFFSFFS...
output:
565502702
result:
ok 1 number(s): "565502702"
Test #60:
score: 0
Accepted
time: 84ms
memory: 16740kb
input:
200000 SFSSSSFSFFSFFFSFSFSSSSSSSSFFSSSFFSFFSSFFFFFFFFFFSSFFFFFFFSFFSFFFFFSSSFFFSFFSFFFFFSSFFSFFFFSSSFSFFSFSSFSFFFFFFFSFFSSFSSFSSFFSSFSSSSSFSSSSFFSFFFFFSSFSFFSFFFSSSSFFSFFFFFSSSSSSFFFSFFSFFFSFFFFFFSSSFSFFFFFSFSSSFFSSSFSFSFSSSFFFFFSSFFFSFSFFFSFSSSSSFSFFSFSSFFSSFSFFFFFSSFSFSFFFSSSFSFFFFSSSSFFFSSFFSFSFS...
output:
287002924
result:
ok 1 number(s): "287002924"
Test #61:
score: 0
Accepted
time: 3ms
memory: 4460kb
input:
4269 SFFFSFSSSSFFFFSFFFSFFSSFSFSSFSSSFSFFFSFSFSSFFFSFFSFFSFSSSFFSSSSFSFFFFFFFSFSSFFFSFFSFFFFSFFFFFSSFFSFFFFSSSFSSSSSFFFSSSSFFFSSFFFSSSSSSFFSFSSSFFFSSSSFSFSSFFFSSFSFSSSSFFFSSSFFFSSSFSSFFSSSSSSFFFFSFFSSSSFFSSSFFFFSFFFFSSFFSFFFSFSFFSFFFFFFSFSSSSFSFSFSSSFFSFFFSSSSFSFFFSSSSSFFSSSSFSSFSSSFSFFFSFSSFFSSFFFF...
output:
988025762
result:
ok 1 number(s): "988025762"
Test #62:
score: 0
Accepted
time: 3ms
memory: 4464kb
input:
4269 SFSFFSFSFFFFSSFSSFSSSSFSFFFFFSSSSSFFFFFFSFFSSFSFFSFFFSSSFSSFFFFSFSSFSFFFFSFSSSSSFFSFFFFFSSFFFFFSFSFSSFFFSFFFSFSSFFFSFFSFFFSFFFFSSSSSFSFSSFFFFFFFSFSFSSFSFSSSFFFSFSSFSSFSSSFFSFFFFFFFSFFFSSSSSFFFFFFSSFFFFFSSFFFFSFSSSFSFSFSSSFSFSSFSFSFFFSSSSFFFFSSFSSFSSFSFSFSSSFFFFSSFSFSSSSFSFSSFSSSFFFSFSFSFSSSFFFF...
output:
149785076
result:
ok 1 number(s): "149785076"
Test #63:
score: 0
Accepted
time: 3ms
memory: 4292kb
input:
4269 SFSSFFFSFFSFSSSFSFSSSSFSSFSSSSSFFSSFFSSSSFSSFSFFFFSSSSSSSFFFFSSSSFSSFFSSSSFSSFFSSFFFSSSFSFFSSSSSFFFSFFSSFFSSFSFSFSFFFFFFSFSFFSFSFFSFSFFSFSSSFSSFFFSSFSFSFFFSFFFSSSFFSFFFSSSFSSFFFSSFSSSSSSSSFSSSSFSFFSSSFFFFFSSSFFFSFFFSFSSSFFFFFFSSFSSFSFFSFSFSFSFSFFSSFSSSSSFSFSSFSFFSSFFSFSSSSSFSSFSFSFSSSSSFSSSFSSF...
output:
284273231
result:
ok 1 number(s): "284273231"
Test #64:
score: 0
Accepted
time: 3ms
memory: 4308kb
input:
4269 SSSSFSSSSFSSSFFSFFSFFFSFFSFFSSFFSFFFFFSSFSFFFSFFFSSSFSSFFSSFSFFSFFFSSFFSFSSSSSSSFSFFFSSSSFFSFFSSFSFSSFFFFFSFSSFFSFFSSSFSSSSFFSFFFFSFSSFFSFSFFFFSSFFFFSFSFSSSFFFSSFSSFSSSSFSSFFSSFSSFSSFFSSFFSSFSSSSFFSSFFSSFSSFSSFSSFFSFSSFFSFSFFSFSFFSFSSFSFFSSSFFFFSSFFSFFSSFFSSFSFFSSSSFFFSFSFSSFFSFSSFSFSFSSFFSSFSS...
output:
501945813
result:
ok 1 number(s): "501945813"
Test #65:
score: 0
Accepted
time: 0ms
memory: 4216kb
input:
4269 SSFSSSFSFFFSSSSFFSSSFFFSSSFSSFFSFFSSSSFFSSSFSFSFFFSSFFSFFFFFFSFSSSSSFFSSFFSSSFFFFSFSSSSSFSFFSSFSSFFSFFFSFFFSSFFSSFFFSSSSFSSSSSFFFFSFSFFSFSFSFFSFSFSSSFSSSFSSFSSSFFSSFSFSSSFSFSSSFFSFSFSSSFFSFFSFFFFFFSSSSFFSSSSFFFFSFSFFFSFFFSSFSFFFSFSSSFFFSFSFSSSSSFFFSSSSFFFSSSFSSSSFSSSFFSSFSSFSFSSSFFSSSSSSFFSSSSS...
output:
699376251
result:
ok 1 number(s): "699376251"
Test #66:
score: 0
Accepted
time: 164ms
memory: 32820kb
input:
199990 FSSFFFFFFSSFFFFFFFFSFSFSSFSSFFFFSSFFFSFFFFFFSSSFSSFFFSFFSFFFFSSSSSSFSFFFSFSSSSSSSFSSSSFSFSFFSSSSFSSSSSFSSSSFFFSFSSSSSSFSFSFSFSFSFSSFSSFSFSSFSSFSSFSSSFFSFFFSSSFSFFSSSSFFFSSSFSFFSFSSSSSFSFFFFFSFSFSFSSSSSSSSSSSFSFSFFFFSFSFSFSFSSSSFFSFSSFFSSFFFFFFFSFSSFSSFFFSFFSFFSFFFSSFFSSFFSSSSFSFFFSFFFSFSSFSFF...
output:
572585899
result:
ok 1 number(s): "572585899"
Test #67:
score: 0
Accepted
time: 191ms
memory: 33548kb
input:
199991 FFSFFSSSFSFSSFSSSFSFSFSFFFFFFFFFFSSFSFSSSSSSSFSFSFSFSSFFFSSSFSFSFFFFFFFSFSFSSFFSSFSSFSSFSSFSFFFSFFSSFSSFFSSSFFSSSFSFSFFFFSSFFSFSFSSFSFFFSFFFSFSFSSSFFFFFFSFSSSFSFFFSSFSFFSSSFFFFSSSSSFFFSSFSSFFSFFFFSSSFSFFSSSFSFFFFFFSFSSFSSSSFFSFFFFFFFSFSFSFFSSFSSSFFSSFSFSSSSSSFFSSFSSSFSSSFFSFFFFFFFSFSFFSSSFSFS...
output:
106691066
result:
ok 1 number(s): "106691066"
Test #68:
score: 0
Accepted
time: 174ms
memory: 44052kb
input:
199992 FFFSFFSSSFFSSSFFSSSFFFSFSFFSSFFFSFFFSSSFFSFSFFFFSFSFFSFSSFSSSFFSSSSFSFSSSSFFSSSSFFFSSSSFSFFSSSFSSSSFSFFSFSFFSSFSSFSSFFSFSFSFFSFFSSSSSSSSFSSSSSFFFSFSFFSFFSSSSSFSSFSFFSFSFFFFSSSFSSSSSFSSSSSSFSSSSSFFSFSSFSSFSSSSSFSFSSSSFFSFFSFFFFSSFFFFFFFFFFSSSSSFSSFFFSFFFFSFSSFSSSFSSSFFSSFSSSSSFFSSSSFFFSSFSFSSF...
output:
951998399
result:
ok 1 number(s): "951998399"
Test #69:
score: 0
Accepted
time: 165ms
memory: 44452kb
input:
199993 FFFSSSFSSFSSSFSSSSSSFFFSFSSSSSFSFFFSSFFFSFSFSFFFSSSSSFFSSSFSFSSSFSFFFFFSFSSFSFFSSFFSFSSSSSFFSFSFSSSFFFSFSSSSFFFFSSSFFSSFSFSFFSFFSFSSFFSSSFFFSSSSSSFFSFSFFFFSSFSSFFSFFSFFFSFFSFSSFFSSSSFFSSSFSFFFSFSFFFSFFSFSSFFSFFFFSSFFSFSFSFSFSSSSFSSFFSFFFFSSSFSSFFFFFFSSSSFSFSFSFFFFSSFFSSSSFSFSFSFSSSFSSFSFFSSSF...
output:
716409060
result:
ok 1 number(s): "716409060"
Test #70:
score: 0
Accepted
time: 144ms
memory: 26840kb
input:
199994 FSFSSSSSFFSFSSFFFSSFSFSFSSFFSSFSFFSSSSFSSFFFSSFFSFSSSFFFFFSSSFFFSFSSSFSFSFSFFSSFSSFSSSSSFSFFFSFFSFSFSFFSSSFFFFFSSFSSFSFFFSSFFFFFSFSSFFSFSFSSSFFFSSSSFSSFSSFSSFSFFFFFSFSSFSSFFSSSFSFSSFSSSSFSFFSFFSSFFFSSSFFSSFSFSFSFSSSSFSFFFFFFSFFSSSSSSSSFSSSFFFFFFSSSSFFFSSFSFSSSSFSSSSSSFSFSSSSFFSFFFSSSSSSFFSFSS...
output:
287920786
result:
ok 1 number(s): "287920786"
Test #71:
score: 0
Accepted
time: 192ms
memory: 31216kb
input:
199995 FSSFFFSSSFSFFSSSFSSSSSFSFSSSFSFFSSFSFSFFFSSSFSSFSFFSFFFFSSFFSSSFFSFSFFFFFFFFFFFFFSSSFSSFFFSSSFSFSSSFFFSFFSFSSSSFSFSFSFSSFFSFSFFSFFSSFSSSFSFFSSSFFSFFFSFFSFSFSFSFSSSFSSSSFFSSFFFFFSFSSSFFSSSSSSSSFFFSFSFFSSSFSFFFFFSFFFFSSSSSSSFFFSFFSFSSSFSFSFFFFSFSSFSSFFFSSFFFSSFSFFFSSSFSFSSFFSFSFFSFFSSFSFSSSSFFF...
output:
619531008
result:
ok 1 number(s): "619531008"
Test #72:
score: 0
Accepted
time: 152ms
memory: 32476kb
input:
199996 FSSFFSFSSSFFFFFFSFSSFSFFSSFFFFFFFSSSFFSFSSFSSFSFSSFSSSFFFFSFFFFFFSSSSFFFSFSSFSSFFSSFSFFSSSSSFSFFFFSFSFFSFSSFSFSSSSSFSFSSSFFSSFSSFSFFSFFSSFSFSSFSSSFSSSFFSSFFFFSFFSFSFSFFFSFSSSFFSFFSSSSSSSSFSSFSSFSSSSFSSSFSSSFSFFFFFFSFFSSSFSSFFFSFSFSFSSSFSFFSSSSFSSFSFSSFSSFSFFFSSSFFSSFSFSFFSSSFFFFSSSSSSSFSSSFFF...
output:
11372220
result:
ok 1 number(s): "11372220"
Test #73:
score: 0
Accepted
time: 196ms
memory: 30708kb
input:
199997 FFSSSFSSFSFSFSSSSFSFFSSFFFSSFFSSSSSSFSSSFFSSSFFFSFFSFSFSSSFFSSSFSFFFFFSSFFSSFFFFSSSFFFFSSSSFFFSSFFSSSFSFFSFSFSFSFFSSFSFSSSFSSFSSFSFFSSFFFSFSSFSFFSSSFSFFSFFFFSSFFSFSFFFSFSFFSFSFSFFSSFFFSSFSFFSFSSSSSFFFFFSSSSSSSSSFFFFSSFFFSSFFSFSFSSSFSFSFFSSSSFSFSFFFSSFSSFFSFFSSFSSSSSSSFSSSFSSSFSFSSSSFSFFSSSFSS...
output:
838488621
result:
ok 1 number(s): "838488621"
Test #74:
score: 0
Accepted
time: 147ms
memory: 28376kb
input:
199998 FFFSSSSSFSSSFFFFFFSSSSFSSFFFSFSSFFFSFFFFSFFFFFFFSSSFFSFSFFSFSFSFFSSFSFFSFSFSFSFFSSFFSFFFSFSFSSSSFSSSFFFSSSSFFSFFFFSFFFFFFSFSSFSFSSFFSSFSFFSFSSFSFSSFSSSSFSSFFSSFSSSSSSSSFFSFFSSSSSSSSSSSSFFSSFFFFFFSSFFSFFFFSSFFFSFFSSFFFFFFFFSFSSFSSSSFFSFSFFSSSSFSFSFFFSSFSFFFSFFSSFFSSSSSSSFSSSFFFSSFSSSSSFFFFSFSF...
output:
23711524
result:
ok 1 number(s): "23711524"
Test #75:
score: 0
Accepted
time: 147ms
memory: 26576kb
input:
199999 FSFSFSFSSFSSSFSSFFSFSFFFFFFSSFSSSFSFSSFFSSSFSSSFSSSFSFFSFSFFFFFFSFFFSFSSSSSSFFSFFSFFFFFFFSSSFFFSFFSSSFSFSSSSSFSSFSFSFFSFSFFSSFSFSSFFSFSSSSSSSSSSSFFSSSSSFSFFFSFFSFFFSFFFFFSFFFFSSSSSSSFFFFSFFSSSFSFSSFFFFSSFSFSFSSSFSSSSFSSFSFFSFFFSSFSSFFFSFSFFFSFFFFSFSFSSSSSSSFFSSFFFSSFSSSSSFSSSFFFFFSFSSSFFFSFFS...
output:
217802478
result:
ok 1 number(s): "217802478"
Test #76:
score: 0
Accepted
time: 154ms
memory: 27324kb
input:
200000 SFSSSSFSFFSFFFSFSFSSSSSSSSFFSSSFFSFFSSFFFFFFFFFFSSFFFFFFFSFFSFFFFFSSSFFFSFFSFFFFFSSFFSFFFFSSSFSFFSFSSFSFFFFFFFSFFSSFSSFSSFFSSFSSSSSFSSSSFFSFFFFFSSFSFFSFFFSSSSFFSFFFFFSSSSSSFFFSFFSFFFSFFFFFFSSSFSFFFFFSFSSSFFSSSFSFSFSSSFFFFFSSFFFSFSFFFSFSSSSSFSFFSFSSFFSSFSFFFFFSSFSFSFFFSSSFSFFFFSSSSFFFSSFFSFSFS...
output:
587382866
result:
ok 1 number(s): "587382866"
Test #77:
score: 0
Accepted
time: 4ms
memory: 4260kb
input:
6942 SSSSSFSSFSFFFFSFFSFFSFSSSSFFFSSSSSSSSSSSSFFSSFSSSFSSFSSFSFSFSSFFFSSFFFFSFSFSFFSFSFSSFFFSSSFFFSFFFFFFFFSFSFFSSSFSSFSSFFFSFSSFFFSSFFSFSSFFSFFSSFFSSSSSFFSSSSSFFSSSSSFFFSSFSFSSSSSSFFSFFFSSFSSSSFSSSSSSFFSFSSFFSFSSFFSSFFFSSSSSFSFSFFSFFFSFFSSSSFFFSSFFSSSSSFSSFSFFSFSSSSSSFFSFSFFFSSSSFFFFFSFFSSSSSFSFFFS...
output:
647088399
result:
ok 1 number(s): "647088399"
Test #78:
score: 0
Accepted
time: 4ms
memory: 4428kb
input:
6942 SSFSSSFSSSFSSSFSFFFSSFFFFSSSFSSFFSFSSFSFSFSFFFSSSFSSSSSFFSFFSFFFSSFFSFFSSSSSFSFFSFSSSFFFSFFFSFSFSSFFFFFSFFSFFFSFSSSFSSSSSFSFFFFSFSSFFSFFFSSFSFFFFSSFSFSFSFSFSSSSFFSSSSFSSFSSSFSSFSSFFSFFFSSFFSFSFFSSFFSSSSSSFSFSSFFFFSSFFSFSSFSSSSFFSSSFSFSSSFFFFFSSFFSFSFFSFFFSSFFSSSFFFFSFSFSSFSFFFFFSFSFSSFSSSFSSSFS...
output:
58335146
result:
ok 1 number(s): "58335146"
Test #79:
score: 0
Accepted
time: 3ms
memory: 4236kb
input:
6942 SFFFFFSSSSSSSSSFFFFSFSFSSSFFFSFFSFFSSSFSFSFFSSFSSSSSSFSSSFSFFSSFFFSFFFSSFFFSFFSFFFFSFFFFSSFSFSFFSFFFSFSFFFSSSFSSSFSSSSSFSFSSFFFSFSSFFFFSFSFSSSSSFFFSFFSFSSFFSFFSFFSSSFFFSSFSFSSFFFSFFFSSFSFSSSFFSSFSSSFFFFFSFSSFFFSFFSFSSFFSFFFSFFFSSSSSSSFSSSSSFFSFFSFFFSFFFFSSFFFSFFFSFFFFSFFSFSSSFSSSSSFFSSFFFFSSFSS...
output:
591276387
result:
ok 1 number(s): "591276387"
Test #80:
score: 0
Accepted
time: 3ms
memory: 4096kb
input:
6942 SFFFFFFSFSSSSFFSSFFFSSSSFSSSSSFFFFSSSFFSSSSFSSFSSFFSFFSSSSFSSFFFSSFSSFFFSFFFSSFFSFFSSFFSFSFSSFSFSFFSFFFSSFFFSSFFSFSFFFFFFSSSFSFFSSSSFSSFSFFSSFFSSFFFSFFFSFSFSFFSSFFSFSSSSFFFFFFFFFFFFFFFFSFSFFSFSFFSSSFSFFSFFSFFSFFFSSFFFFSFSSSSFFSSSFSSSFFSFFSSSSFSFFFFSSSSFSSFFFSSSFSSFFFFSFSFSSSFFFFFSSFSSFFFFFFFSSF...
output:
57049203
result:
ok 1 number(s): "57049203"
Test #81:
score: 0
Accepted
time: 3ms
memory: 4356kb
input:
6942 SFSFSSFSFFFFFSSFSFFSSSFFSFSFSFFSSFFSFSSFFFFSFFSSSFFSSFSFFFSSSSSFFFSSSFSFFFSFSFSFSSFFSFFSFFFFFSFSSSFSSFSFSFSSFFFSSSSSFFSFFSFSSSFFSSSSSFSFFSSFSFSFFFSSSFFFFSFFSFFSFFSFSSSSSFSFFSFFSSFFFSFSFFSFFFFSFSSFSSFFSSSFFFSSFFSFSFSFSFFFFSFSSSSSSFSSFFFFFFFFSFFFSSSSSSFFFFSSSFFSFSFFFFSFFFFFFSFSFFFFSSFSSSFFFFFFSSF...
output:
552170569
result:
ok 1 number(s): "552170569"
Test #82:
score: 0
Accepted
time: 103ms
memory: 24452kb
input:
199990 FSSFFFFFFSSFFFFFFFFSFSFSSFSSFFFFSSFFFSFFFFFFSSSFSSFFFSFFSFFFFSSSSSSFSFFFSFSSSSSSSFSSSSFSFSFFSSSSFSSSSSFSSSSFFFSFSSSSSSFSFSFSFSFSFSSFSSFSFSSFSSFSSFSSSFFSFFFSSSFSFFSSSSFFFSSSFSFFSFSSSSSFSFFFFFSFSFSFSSSSSSSSSSSFSFSFFFFSFSFSFSFSSSSFFSFSSFFSSFFFFFFFSFSSFSSFFFSFFSFFSFFFSSFFSSFFSSSSFSFFFSFFFSFSSFSFF...
output:
889655158
result:
ok 1 number(s): "889655158"
Test #83:
score: 0
Accepted
time: 131ms
memory: 23992kb
input:
199991 FFSFFSSSFSFSSFSSSFSFSFSFFFFFFFFFFSSFSFSSSSSSSFSFSFSFSSFFFSSSFSFSFFFFFFFSFSFSSFFSSFSSFSSFSSFSFFFSFFSSFSSFFSSSFFSSSFSFSFFFFSSFFSFSFSSFSFFFSFFFSFSFSSSFFFFFFSFSSSFSFFFSSFSFFSSSFFFFSSSSSFFFSSFSSFFSFFFFSSSFSFFSSSFSFFFFFFSFSSFSSSSFFSFFFFFFFSFSFSFFSSFSSSFFSSFSFSSSSSSFFSSFSSSFSSSFFSFFFFFFFSFSFFSSSFSFS...
output:
494331015
result:
ok 1 number(s): "494331015"
Test #84:
score: 0
Accepted
time: 123ms
memory: 30000kb
input:
199992 FFFSFFSSSFFSSSFFSSSFFFSFSFFSSFFFSFFFSSSFFSFSFFFFSFSFFSFSSFSSSFFSSSSFSFSSSSFFSSSSFFFSSSSFSFFSSSFSSSSFSFFSFSFFSSFSSFSSFFSFSFSFFSFFSSSSSSSSFSSSSSFFFSFSFFSFFSSSSSFSSFSFFSFSFFFFSSSFSSSSSFSSSSSSFSSSSSFFSFSSFSSFSSSSSFSFSSSSFFSFFSFFFFSSFFFFFFFFFFSSSSSFSSFFFSFFFFSFSSFSSSFSSSFFSSFSSSSSFFSSSSFFFSSFSFSSF...
output:
689624374
result:
ok 1 number(s): "689624374"
Test #85:
score: 0
Accepted
time: 124ms
memory: 29568kb
input:
199993 FFFSSSFSSFSSSFSSSSSSFFFSFSSSSSFSFFFSSFFFSFSFSFFFSSSSSFFSSSFSFSSSFSFFFFFSFSSFSFFSSFFSFSSSSSFFSFSFSSSFFFSFSSSSFFFFSSSFFSSFSFSFFSFFSFSSFFSSSFFFSSSSSSFFSFSFFFFSSFSSFFSFFSFFFSFFSFSSFFSSSSFFSSSFSFFFSFSFFFSFFSFSSFFSFFFFSSFFSFSFSFSFSSSSFSSFFSFFFFSSSFSSFFFFFFSSSSFSFSFSFFFFSSFFSSSSFSFSFSFSSSFSSFSFFSSSF...
output:
683475260
result:
ok 1 number(s): "683475260"
Test #86:
score: 0
Accepted
time: 105ms
memory: 22744kb
input:
199994 FSFSSSSSFFSFSSFFFSSFSFSFSSFFSSFSFFSSSSFSSFFFSSFFSFSSSFFFFFSSSFFFSFSSSFSFSFSFFSSFSSFSSSSSFSFFFSFFSFSFSFFSSSFFFFFSSFSSFSFFFSSFFFFFSFSSFFSFSFSSSFFFSSSSFSSFSSFSSFSFFFFFSFSSFSSFFSSSFSFSSFSSSSFSFFSFFSSFFFSSSFFSSFSFSFSFSSSSFSFFFFFFSFFSSSSSSSSFSSSFFFFFFSSSSFFFSSFSFSSSSFSSSSSSFSFSSSSFFSFFFSSSSSSFFSFSS...
output:
158196096
result:
ok 1 number(s): "158196096"
Test #87:
score: 0
Accepted
time: 136ms
memory: 22276kb
input:
199995 FSSFFFSSSFSFFSSSFSSSSSFSFSSSFSFFSSFSFSFFFSSSFSSFSFFSFFFFSSFFSSSFFSFSFFFFFFFFFFFFFSSSFSSFFFSSSFSFSSSFFFSFFSFSSSSFSFSFSFSSFFSFSFFSFFSSFSSSFSFFSSSFFSFFFSFFSFSFSFSFSSSFSSSSFFSSFFFFFSFSSSFFSSSSSSSSFFFSFSFFSSSFSFFFFFSFFFFSSSSSSSFFFSFFSFSSSFSFSFFFFSFSSFSSFFFSSFFFSSFSFFFSSSFSFSSFFSFSFFSFFSSFSFSSSSFFF...
output:
600871125
result:
ok 1 number(s): "600871125"
Test #88:
score: 0
Accepted
time: 117ms
memory: 25252kb
input:
199996 FSSFFSFSSSFFFFFFSFSSFSFFSSFFFFFFFSSSFFSFSSFSSFSFSSFSSSFFFFSFFFFFFSSSSFFFSFSSFSSFFSSFSFFSSSSSFSFFFFSFSFFSFSSFSFSSSSSFSFSSSFFSSFSSFSFFSFFSSFSFSSFSSSFSSSFFSSFFFFSFFSFSFSFFFSFSSSFFSFFSSSSSSSSFSSFSSFSSSSFSSSFSSSFSFFFFFFSFFSSSFSSFFFSFSFSFSSSFSFFSSSSFSSFSFSSFSSFSFFFSSSFFSSFSFSFFSSSFFFFSSSSSSSFSSSFFF...
output:
295471594
result:
ok 1 number(s): "295471594"
Test #89:
score: 0
Accepted
time: 131ms
memory: 23804kb
input:
199997 FFSSSFSSFSFSFSSSSFSFFSSFFFSSFFSSSSSSFSSSFFSSSFFFSFFSFSFSSSFFSSSFSFFFFFSSFFSSFFFFSSSFFFFSSSSFFFSSFFSSSFSFFSFSFSFSFFSSFSFSSSFSSFSSFSFFSSFFFSFSSFSFFSSSFSFFSFFFFSSFFSFSFFFSFSFFSFSFSFFSSFFFSSFSFFSFSSSSSFFFFFSSSSSSSSSFFFFSSFFFSSFFSFSFSSSFSFSFFSSSSFSFSFFFSSFSSFFSFFSSFSSSSSSSFSSSFSSSFSFSSSSFSFFSSSFSS...
output:
93433174
result:
ok 1 number(s): "93433174"
Test #90:
score: 0
Accepted
time: 112ms
memory: 21740kb
input:
199998 FFFSSSSSFSSSFFFFFFSSSSFSSFFFSFSSFFFSFFFFSFFFFFFFSSSFFSFSFFSFSFSFFSSFSFFSFSFSFSFFSSFFSFFFSFSFSSSSFSSSFFFSSSSFFSFFFFSFFFFFFSFSSFSFSSFFSSFSFFSFSSFSFSSFSSSSFSSFFSSFSSSSSSSSFFSFFSSSSSSSSSSSSFFSSFFFFFFSSFFSFFFFSSFFFSFFSSFFFFFFFFSFSSFSSSSFFSFSFFSSSSFSFSFFFSSFSFFFSFFSSFFSSSSSSSFSSSFFFSSFSSSSSFFFFSFSF...
output:
136831174
result:
ok 1 number(s): "136831174"
Test #91:
score: 0
Accepted
time: 113ms
memory: 21440kb
input:
199999 FSFSFSFSSFSSSFSSFFSFSFFFFFFSSFSSSFSFSSFFSSSFSSSFSSSFSFFSFSFFFFFFSFFFSFSSSSSSFFSFFSFFFFFFFSSSFFFSFFSSSFSFSSSSSFSSFSFSFFSFSFFSSFSFSSFFSFSSSSSSSSSSSFFSSSSSFSFFFSFFSFFFSFFFFFSFFFFSSSSSSSFFFFSFFSSSFSFSSFFFFSSFSFSFSSSFSSSSFSSFSFFSFFFSSFSSFFFSFSFFFSFFFFSFSFSSSSSSSFFSSFFFSSFSSSSSFSSSFFFFFSFSSSFFFSFFS...
output:
957993216
result:
ok 1 number(s): "957993216"
Test #92:
score: 0
Accepted
time: 100ms
memory: 21908kb
input:
200000 SFSSSSFSFFSFFFSFSFSSSSSSSSFFSSSFFSFFSSFFFFFFFFFFSSFFFFFFFSFFSFFFFFSSSFFFSFFSFFFFFSSFFSFFFFSSSFSFFSFSSFSFFFFFFFSFFSSFSSFSSFFSSFSSSSSFSSSSFFSFFFFFSSFSFFSFFFSSSSFFSFFFFFSSSSSSFFFSFFSFFFSFFFFFFSSSFSFFFFFSFSSSFFSSSFSFSFSSSFFFFFSSFFFSFSFFFSFSSSSSFSFFSFSSFFSSFSFFFFFSSFSFSFFFSSSFSFFFFSSSSFFFSSFFSFSFS...
output:
777222734
result:
ok 1 number(s): "777222734"
Extra Test:
score: 0
Extra Test Passed