QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#563988#8836. Highway Hoaxucup-team4435#AC ✓439ms37280kbC++2033.4kb2024-09-14 18:23:202024-09-14 18:23:20

Judging History

你现在查看的是最新测评结果

  • [2024-09-14 18:23:20]
  • 评测
  • 测评结果:AC
  • 用时:439ms
  • 内存:37280kb
  • [2024-09-14 18:23:20]
  • 提交

answer

#pragma GCC optimize("Ofast")

#include "bits/stdc++.h"

#define rep(i, n) for (int i = 0; i < (n); ++i)
#define rep1(i, n) for (int i = 1; i < (n); ++i)
#define rep1n(i, n) for (int i = 1; i <= (n); ++i)
#define repr(i, n) for (int i = (n) - 1; i >= 0; --i)
#define pb push_back
#define eb emplace_back
#define all(a) (a).begin(), (a).end()
#define rall(a) (a).rbegin(), (a).rend()
#define each(x, a) for (auto &x : a)
#define ar array
#define vec vector
#define range(i, n) rep(i, n)

using namespace std;

using ll = long long;
using ull = unsigned long long;
using ld = long double;
using str = string;
using pi = pair<int, int>;
using pl = pair<ll, ll>;

using vi = vector<int>;
using vl = vector<ll>;
using vpi = vector<pair<int, int>>;
using vvi = vector<vi>;

int Bit(int mask, int b) { return (mask >> b) & 1; }

template<class T>
bool ckmin(T &a, const T &b) {
    if (b < a) {
        a = b;
        return true;
    }
    return false;
}

template<class T>
bool ckmax(T &a, const T &b) {
    if (b > a) {
        a = b;
        return true;
    }
    return false;
}

// [l, r)
template<typename T, typename F>
T FindFirstTrue(T l, T r, const F &predicat) {
    --l;
    while (r - l > 1) {
        T mid = l + (r - l) / 2;
        if (predicat(mid)) {
            r = mid;
        } else {
            l = mid;
        }
    }
    return r;
}


template<typename T, typename F>
T FindLastFalse(T l, T r, const F &predicat) {
    return FindFirstTrue(l, r, predicat) - 1;
}

const ll INF = 2e18;
const int INFi = 1e9;
const int LG = 49;

/*
 ! WARNING: MOD must be prime.
 ! WARNING: MOD must be less than 2^30.
 * Use .get() to get the stored value.
 */
template<uint32_t mod>
class montgomery {
    static_assert(mod < uint32_t(1) << 30, "mod < 2^30");
    using mint = montgomery<mod>;

private:
    uint32_t value;

    static constexpr uint32_t inv_neg_mod = []() {
        uint32_t x = mod;
        for (int i = 0; i < 4; ++i) {
            x *= uint32_t(2) - mod * x;
        }
        return -x;
    }();
    static_assert(mod * inv_neg_mod == -1);

    static constexpr uint32_t neg_mod = (-uint64_t(mod)) % mod;

    static uint32_t reduce(const uint64_t &value) {
        return (value + uint64_t(uint32_t(value) * inv_neg_mod) * mod) >> 32;
    }

    inline static const mint ONE = mint(1);

public:
    montgomery() : value(0) {}
    montgomery(const mint &x) : value(x.value) {}

    template<typename T, typename U = std::enable_if_t<std::is_integral<T>::value>>
    montgomery(const T &x) : value(!x ? 0 : reduce(int64_t(x % int32_t(mod) + int32_t(mod)) * neg_mod)) {}

    static constexpr uint32_t get_mod() {
        return mod;
    }

    uint32_t get() const {
        auto real_value = reduce(value);
        return real_value < mod ? real_value : real_value - mod;
    }

    template<typename T>
    mint power(T degree) const {
        degree = (degree % int32_t(mod - 1) + int32_t(mod - 1)) % int32_t(mod - 1);
        mint prod = 1, a = *this;
        for (; degree > 0; degree >>= 1, a *= a)
            if (degree & 1)
                prod *= a;

        return prod;
    }

    mint inv() const {
        return power(-1);
    }

    mint& operator=(const mint &x) {
        value = x.value;
        return *this;
    }

    mint& operator+=(const mint &x) {
        if (int32_t(value += x.value - (mod << 1)) < 0) {
            value += mod << 1;
        }
        return *this;
    }

    mint& operator-=(const mint &x) {
        if (int32_t(value -= x.value) < 0) {
            value += mod << 1;
        }
        return *this;
    }

    mint& operator*=(const mint &x) {
        value = reduce(uint64_t(value) * x.value);
        return *this;
    }

    mint& operator/=(const mint &x) {
        return *this *= x.inv();
    }

    friend mint operator+(const mint &x, const mint &y) {
        return mint(x) += y;
    }

    friend mint operator-(const mint &x, const mint &y) {
        return mint(x) -= y;
    }

    friend mint operator*(const mint &x, const mint &y) {
        return mint(x) *= y;
    }

    friend mint operator/(const mint &x, const mint &y) {
        return mint(x) /= y;
    }

    mint& operator++() {
        return *this += ONE;
    }

    mint& operator--() {
        return *this -= ONE;
    }

    mint operator++(int) {
        mint prev = *this;
        *this += ONE;
        return prev;
    }

    mint operator--(int) {
        mint prev = *this;
        *this -= ONE;
        return prev;
    }

    mint operator-() const {
        return mint(0) - *this;
    }

    bool operator==(const mint &x) const {
        return get() == x.get();
    }

    bool operator!=(const mint &x) const {
        return get() != x.get();
    }

    bool operator<(const mint &x) const {
        return get() < x.get();
    }

    template<typename T>
    explicit operator T() {
        return get();
    }

    friend std::istream& operator>>(std::istream &in, mint &x) {
        std::string s;
        in >> s;
        x = 0;
        bool neg = s[0] == '-';
        for (const auto c : s)
            if (c != '-')
                x = x * 10 + (c - '0');

        if (neg)
            x *= -1;

        return in;
    }

    friend std::ostream& operator<<(std::ostream &out, const mint &x) {
        return out << x.get();
    }

    static int32_t primitive_root() {
        if constexpr (mod == 1'000'000'007)
            return 5;
        if constexpr (mod == 998'244'353)
            return 3;
        if constexpr (mod == 786433)
            return 10;

        static int root = -1;
        if (root != -1)
            return root;

        std::vector<int> primes;
        int value = mod - 1;
        for (int i = 2; i * i <= value; i++)
            if (value % i == 0) {
                primes.push_back(i);
                while (value % i == 0)
                    value /= i;
            }

        if (value != 1)
            primes.push_back(value);

        for (int r = 2;; r++) {
            bool ok = true;
            for (auto p : primes)
                if ((mint(r).power((mod - 1) / p)).get() == 1) {
                    ok = false;
                    break;
                }

            if (ok)
                return root = r;
        }
    }
};

// constexpr uint32_t MOD = 1'000'000'007;
constexpr uint32_t MOD = 998'244'353;
using mint = montgomery<MOD>;

/*
 ! WARNING: (MOD - 1) must be divisible by (2n), where n is max degree of polynomials.
 * Include static_modular_int or montgomery (faster) to use it.
 * Don't need to care about precomputing primitive root.
 * Use it like std::vector<mint> with extra methods.
 */
template<typename mint>
class polynom_t : public std::vector<mint> {
public:
    static constexpr int RANK = __builtin_ctz(mint::get_mod() - 1);
    static_assert(RANK >= 15, "MOD doesn't seem fft-friendly.");

    using value_type = mint;

    using std::vector<mint>::empty;
    using std::vector<mint>::back;
    using std::vector<mint>::pop_back;
    using std::vector<mint>::size;
    using std::vector<mint>::clear;
    using std::vector<mint>::begin;
    using std::vector<mint>::end;

private:
    static constexpr int EVAL_BRUTE_SIZE = 1 << 4;
    static constexpr int MUL_MIN_CUT = 20;
    static constexpr int MUL_MAX_CUT = 1 << 6;
    static constexpr int DIV_N_CUT = 1 << 7;
    static constexpr int DIV_M_CUT = 1 << 6;
    static constexpr int INV_BRUTE_FORCE_SIZE = 1 << 3;

    class fft_precalc {
    private:
        std::vector<mint> inv_{0, 1};

    public:
        mint root;
        // roots[x] = root.power((MOD - 1) / 2^x)
        // inv_roots[x] = roots[x].inv()
        std::array<mint, RANK> roots, inv_roots;
        // inv_n[x] = 2^{-x}
        std::array<mint, RANK> inv_l;
        // r_transition[x] = root.power((MOD - 1) * (3 - 2^{x + 1}) / 2^{x + 2})
        // inv_r_transition[x] = r_transition[x].inv()
        std::array<mint, RANK> r_transition, inv_r_transition;

        fft_precalc() {
            root = mint::primitive_root();
            for (int x = 0; x < RANK; x++) {
                roots[x] = mint(root).power((mint::get_mod() - 1) >> x);
                inv_roots[x] = roots[x].inv();
                inv_l[x] = mint(1 << x).inv();
                r_transition[x] = root.power(((mint::get_mod() - 1) >> (x + 2)) * (3 + (1 << (x + 1))));
                inv_r_transition[x] = r_transition[x].inv();
            }
        }

        mint inv(int x) {
            for (int i = inv_.size(); i <= x; i++) {
                inv_.push_back(-inv_[mint::get_mod() % i] * mint(mint::get_mod() / i));
            }
            return inv_[x];
        }
    };

    inline static fft_precalc fft_data;

public:
    /*
     * Let r be the primitive root of the given MOD.
     * Let rev(i) be the reversed i as a binary mask of size log(n).
     * Let R[i] = r.power((MOD - 1) / a.size() * rev(i)).
     * It replaces a[i] with a.eval(R[i]).
     */
    static void fft(polynom_t<mint> &a) {
        assert(!a.empty());
        int n = a.size(), l = __builtin_ctz(n);
        for (int len = 0; len < l; len++) {
            int m = n >> (len + 1);
            mint r = 1;
            for (int i = 0; i < (1 << len); i++) {
                // rot = r^((MOD - 1) / n * rev(2 * i))
                int id = i << (l - len);
                for (int j = 0; j < m; j++) {
                    auto u = a[id + j];
                    auto v = a[id + j + m] * r;
                    a[id + j] = u + v;
                    a[id + j + m] = u - v;
                }
                if (i + 1 < (1 << len)) {
                    r *= fft_data.r_transition[__builtin_ctz(~i)];
                }
            }
        }
    }

    // inv_fft(fft(a)) = a
    static void inv_fft(polynom_t<mint> &a) {
        assert(!a.empty());
        int n = a.size(), l = __builtin_ctz(n);
        for (int len = l - 1; len >= 0; len--) {
            int m = n >> (len + 1);
            mint ir = 1;
            for (int i = 0; i < (1 << len); i++) {
                int id = i << (l - len);
                for (int j = 0; j < m; j++) {
                    auto u = a[id + j];
                    auto v = a[id + j + m];
                    a[id + j] = u + v;
                    a[id + j + m] = (u - v) * ir;
                }
                if (i + 1 < (1 << len)) {
                    ir *= fft_data.inv_r_transition[__builtin_ctz(~i)];
                }
            }
        }
        for (auto &value : a) {
            value *= fft_data.inv_l[l];
        }
    }

private:
    // Completes fft assuming that a is the right half of the polynomial after the first iteration of the fft.
    static void right_half_fft(polynom_t<mint> &a) {
        assert(!a.empty());
        int n = a.size(), l = __builtin_ctz(n);
        for (int len = 0; len < l; len++) {
            int m = n >> (len + 1);
            mint r = fft_data.roots[len + 2];
            for (int i = 0; i < (1 << len); i++) {
                int id = i << (l - len);
                for (int j = 0; j < m; j++) {
                    auto u = a[id + j];
                    auto v = a[id + j + m] * r;
                    a[id + j] = u + v;
                    a[id + j + m] = u - v;
                }
                if (i + 1 < (1 << len)) {
                    r *= fft_data.r_transition[__builtin_ctz(~i)];
                }
            }
        }
    }

    // inv_right_half_fft(right_half_fft(a)) = a
    static void inv_right_half_fft(polynom_t<mint> &a) {
        assert(!a.empty());
        int n = a.size(), l = __builtin_ctz(n);
        for (int len = l - 1; len >= 0; len--) {
            int m = n >> (len + 1);
            mint ir = fft_data.inv_roots[len + 2];
            for (int i = 0; i < (1 << len); i++) {
                int id = i << (l - len);
                for (int j = 0; j < m; j++) {
                    auto u = a[id + j];
                    auto v = a[id + j + m];
                    a[id + j] = u + v;
                    a[id + j + m] = (u - v) * ir;
                }
                if (i + 1 < (1 << len)) {
                    ir *= fft_data.inv_r_transition[__builtin_ctz(~i)];
                }
            }
        }
        for (auto &value : a) {
            value *= fft_data.inv_l[l];
        }
    }

    class multipoint_evaluation_tree {
    private:
        int n_points, l;
        std::vector<polynom_t<mint>> segtree;

    public:
        multipoint_evaluation_tree(int n, const std::vector<mint> &points) : n_points(points.size()), l(1) {
            while ((1 << l) < n) {
                l++;
            }
            polynom_t<mint> aux;
            aux.reserve(1 << l);

            segtree.assign(l + 1, polynom_t<mint>(1 << (l + 1)));
            for (int i = 0; i < (1 << l); i++) {
                aux = {i < n_points ? -points[i] : 0, 1};
                fft(aux);
                segtree[0][i << 1] = aux[0];
                segtree[0][i << 1 | 1] = aux[1];
            }

            for (int len = 0; len < l; len++) {
                aux.resize(1 << (len + 1));
                for (int i = 0; i < (1 << (l + 1)); i += (1 << (len + 2))) {
                    for (int j = 0; j < static_cast<int>(aux.size()); j++) {
                        aux[j] = segtree[len][i + j] * segtree[len][i + j + aux.size()];
                    }
                    if (len + 1 < l) {
                        std::copy(aux.begin(), aux.end(), segtree[len + 1].begin() + i);
                        inv_fft(aux);
                        aux[0] -= 2;
                        right_half_fft(aux);
                        std::copy(aux.begin(), aux.end(), segtree[len + 1].begin() + i + aux.size());
                    } else {
                        inv_fft(aux);
                        aux[0]--;
                        std::copy(aux.begin(), aux.end(), segtree[len + 1].begin() + i);
                        segtree[len + 1][1 << (len + 1)]++;
                    }
                }
            }
        }

        std::vector<mint> evaluate(polynom_t<mint> f) const {
            if (static_cast<int>(f.size()) > (1 << l)) {
                f %= segtree[l];
            }
            assert(static_cast<int>(f.size()) <= (1 << l));
            f.resize(1 << (l + 1));
            std::rotate(f.begin(), std::prev(f.end()), f.end());
            fft(f);

            auto g = segtree[l];
            std::reverse(g.begin(), g.begin() + 1 + (1 << l));
            g.resize(1 << l);
            g = g.inv(1 << l);
            std::reverse(g.begin(), g.end());
            g.resize(1 << (l + 1));
            fft(g);
            for (int i = 0; i < (1 << (l + 1)); i++) {
                g[i] *= f[i];
            }

            polynom_t<mint> aux;
            aux.reserve(1 << l);
            for (int len = l - 1; len >= 0; len--) {
                aux.resize(1 << (len + 1));
                for (int i = 0; i < (1 << (l + 1)); i += (1 << (len + 2))) {
                    for (int j = 0; j < static_cast<int>(aux.size()); j++) {
                        aux[j] = g[i + j + (1 << (len + 1))];
                    }
                    inv_right_half_fft(aux);
                    fft(aux);
                    std::copy(aux.begin(), aux.end(), g.begin() + i + (1 << (len + 1)));
                    for (int j = 0; j < (1 << (len + 1)); j++) {
                        auto x = g[i + j] - g[i + j + (1 << (len + 1))];
                        g[i + j + (1 << (len + 1))] = x * segtree[len][i + j];
                        g[i + j] = x * segtree[len][i + j + (1 << (len + 1))];
                    }
                }
            }

            std::vector<mint> eval(n_points);
            for (int i = 0; i < n_points; i++) {
                eval[i] = (g[2 * i] - g[2 * i + 1]) * fft_data.inv_l[l + 1];
            }
            return eval;
        }

        polynom_t<mint> interpolate(const std::vector<mint> &y) const {
            auto prod = segtree[l];
            prod.erase(prod.begin(), prod.begin() + ((1 << l) - n_points));
            auto values = evaluate(prod.derivative());

            polynom_t<mint> aux;
            aux.reserve(1 << l);
            polynom_t<mint> result(1 << (l + 1));
            for (int i = 0; i < (1 << l); i++) {
                aux = {i < n_points ? y[i] / values[i] : 0, 0};
                fft(aux);
                result[i << 1] = aux[0];
                result[i << 1 | 1] = aux[1];
            }

            polynom_t<mint> next(1 << (l + 1));
            for (int len = 0; len < l; len++) {
                aux.resize(1 << (len + 1));
                for (int i = 0; i < (1 << (l + 1)); i += (1 << (len + 2))) {
                    for (int j = 0; j < (1 << (len + 1)); j++) {
                        aux[j] = segtree[len][i + j] * result[i + j + aux.size()]
                                 + segtree[len][i + j + aux.size()] * result[i + j];
                    }
                    if (len + 1 < l) {
                        std::copy(aux.begin(), aux.end(), next.begin() + i);
                        inv_fft(aux);
                        right_half_fft(aux);
                        std::copy(aux.begin(), aux.end(), next.begin() + i + (1 << (len + 1)));
                    } else {
                        inv_fft(aux);
                        std::copy(aux.begin(), aux.end(), next.begin());
                    }
                }
                result.swap(next);
            }
            result.erase(result.begin(), result.begin() + ((1 << l) - n_points));
            return result.resize(n_points);
        }
    };

public:
    polynom_t() : std::vector<mint>() {}
    polynom_t(size_t n, mint value = 0) : std::vector<mint>(n, value) {}
    polynom_t(std::initializer_list<mint> values) : std::vector<mint>(values.begin(), values.end()) {}

    template<typename Iterator>
    polynom_t(Iterator first, Iterator last) : std::vector<mint>(first, last) {}

    polynom_t<mint>& resize(int n) {
        std::vector<mint>::resize(n);
        return *this;
    }

    // Removes extra zeroes.
    void normalize() {
        while (!empty() && back() == mint(0)) {
            pop_back();
        }
    }

    // Returns -1 if all coefficients are zeroes (not O(1)!).
    int degree() const {
        int deg = static_cast<int>(size()) - 1;
        while (deg >= 0 && (*this)[deg] == mint(0)) {
            deg--;
        }
        return deg;
    }

    mint eval(const mint &x) const {
        mint power = 1, value = 0;
        for (int i = 0; i < static_cast<int>(size()); i++, power *= x) {
            value += (*this)[i] * power;
        }
        return value;
    }

    // Calculates eval at the given points.
    // O(n log^2).
    std::vector<mint> multipoint_evaluation(const std::vector<mint> &points) const {
        if (std::min(size(), points.size()) <= EVAL_BRUTE_SIZE) {
            std::vector<mint> eval(points.size());
            for (int i = 0; i < static_cast<int>(points.size()); i++) {
                eval[i] = this->eval(points[i]);
            }
            return eval;
        }
        return multipoint_evaluation_tree(std::max(size(), points.size()), points).evaluate(*this);
    }

    // Interpolates polynomial f, such that f(x[i]) = y[i].
    // O(n log^2).
    static polynom_t<mint> interpolate(const std::vector<mint> &x, const std::vector<mint> &y) {
        assert(x.size() == y.size());
        return multipoint_evaluation_tree(x.size(), x).interpolate(y);
    }

    polynom_t<mint> operator-() const {
        return polynom_t(*this) * mint(-1);
    }

    polynom_t<mint>& operator+=(const polynom_t<mint> &another) {
        if (size() < another.size()) {
            resize(another.size());
        }
        for (int i = 0; i < static_cast<int>(another.size()); i++) {
            (*this)[i] += another[i];
        }
        return *this;
    }

    polynom_t<mint>& operator-=(const polynom_t<mint> &another) {
        if (size() < another.size()) {
            resize(another.size());
        }
        for (int i = 0; i < static_cast<int>(another.size()); i++) {
            (*this)[i] -= another[i];
        }
        return *this;
    }

    polynom_t<mint>& operator*=(const polynom_t<mint> &another) {
        if (empty() || another.empty()) {
            clear();
            return *this;
        }

        if (std::min(size(), another.size()) <= MUL_MIN_CUT
            || std::max(size(), another.size()) <= MUL_MAX_CUT) {
            polynom_t<mint> product(int(size() + another.size()) - 1);
            for (int i = 0; i < static_cast<int>(size()); i++) {
                for (int j = 0; j < static_cast<int>(another.size()); j++) {
                    product[i + j] += (*this)[i] * another[j];
                }
            }
            product.swap(*this);
            return *this;
        }

        int real_size = static_cast<int>(size() + another.size()) - 1, n = 1;
        while (n < real_size) {
            n <<= 1;
        }

        if ((*this) == another) {
            resize(n);
            fft(*this);
            for (int i = 0; i < n; i++) {
                (*this)[i] *= (*this)[i];
            }
        } else {
            resize(n);
            polynom_t b = another;
            b.resize(n);
            fft(*this), fft(b);
            for (int i = 0; i < n; i++) {
                (*this)[i] *= b[i];
            }
        }
        inv_fft(*this);
        return resize(real_size);
    }

    // Division with remainder.
    // O(n log).
    polynom_t<mint>& operator/=(const polynom_t<mint> &another) {
        polynom_t<mint> a(*this), b(another);
        a.normalize(), b.normalize();
        assert(!b.empty());
        int n = a.size(), m = b.size();
        if (n < m) {
            return *this = {};
        }
        if (n <= DIV_N_CUT || m <= DIV_M_CUT) {
            polynom_t<mint> quotient(n - m + 1);
            mint inv_b = mint(1) / b.back();
            for (int i = n - 1; i >= m - 1; i--) {
                int pos = i - m + 1;
                quotient[pos] = a[i] * inv_b;
                for (int j = 0; j < m; j++) {
                    a[pos + j] -= b[j] * quotient[pos];
                }
            }
            quotient.normalize();
            return *this = quotient;
        }

        std::reverse(a.begin(), a.end());
        std::reverse(b.begin(), b.end());
        polynom_t<mint> quotient = a * b.inv(n - m + 1);
        quotient.resize(n - m + 1);
        std::reverse(quotient.begin(), quotient.end());
        quotient.normalize();
        return *this = quotient;
    }

    // O(n log).
    polynom_t<mint>& operator%=(const polynom_t<mint> &another) {
        *this -= (*this) / another * another;
        normalize();
        return *this;
    }

    // Returns derivative.
    // O(n).
    polynom_t<mint> derivative() const {
        polynom_t<mint> der(std::max(0, static_cast<int>(size()) - 1));
        for (int i = 0; i < static_cast<int>(der.size()); i++) {
            der[i] = mint(i + 1) * (*this)[i + 1];
        }
        return der;
    }

    // Returns integral.
    // O(n).
    polynom_t<mint> integral(const mint &constant = mint(0)) const {
        polynom_t<mint> in(size() + 1);
        in[0] = constant;
        for (int i = 1; i < static_cast<int>(in.size()); i++) {
            in[i] = (*this)[i - 1] * fft_data.inv(i);
        }
        return in;
    }

    // Returns p^{-1} modulo x^{degree}.
    // O(n log).
    polynom_t<mint> inv(int degree) const {
        assert(!empty() && (*this)[0] != mint(0) && "polynom is not invertable");

        int result_size = 1;
        while (result_size < degree) {
            result_size <<= 1;
        }
        polynom_t<mint> inv(result_size);
        inv[0] = (*this)[0].inv();

        int brute_calculation = std::min(degree, INV_BRUTE_FORCE_SIZE);
        mint start_inv = (*this)[0].inv();

        polynom_t<mint> have(brute_calculation);
        for (int i = 0; i < brute_calculation; i++) {
            inv[i] = ((i == 0 ? 1 : 0) - have[i]) * start_inv;
            int steps = std::min<int>(size(), have.size() - i);
            for (int j = 0; j < steps; j++) {
                have[i + j] += inv[i] * (*this)[j];
            }
        }

        polynom_t<mint> this_copy, inv_copy;
        this_copy.reserve(result_size);
        inv_copy.reserve(result_size);

        for (int power = brute_calculation; power < degree; power <<= 1) {
            this_copy.resize(power << 1);
            std::fill(this_copy.begin() + std::min<int>(size(), power << 1), this_copy.end(), 0);
            std::copy(begin(), begin() + std::min<int>(size(), power << 1), this_copy.begin());
            inv_copy.resize(power << 1);
            std::copy(inv.begin(), inv.begin() + power, inv_copy.begin());

            fft(this_copy);
            fft(inv_copy);
            for (int i = 0; i < (power << 1); i++) {
                this_copy[i] *= inv_copy[i];
            }
            inv_fft(this_copy);
            std::fill(this_copy.begin(), this_copy.begin() + power, 0);
            fft(this_copy);
            for (int i = 0; i < (power << 1); i++) {
                this_copy[i] *= inv_copy[i];
            }
            inv_fft(this_copy);
            for (int i = power; i < (power << 1); i++) {
                inv[i] = -this_copy[i];
            }
        }
        return inv.resize(degree);
    }

    // Returns log(p) modulo x^{degree}.
    // O(n log).
    polynom_t<mint> log(int degree) const {
        assert(!empty() && (*this)[0] == mint(1) && "log is not defined");
        return (derivative().resize(std::min<int>(degree, size())) * inv(degree)).resize(degree).integral(mint(0)).resize(degree);
    }

    // Returns exp(p) modulo x^{degree}.
    // O(n log).
    polynom_t<mint> exp(int degree) const {
        assert(!empty() && (*this)[0] == mint(0) && "exp is not defined");

        int result_size = 1;
        while (result_size < degree) {
            result_size <<= 1;
        }

        polynom_t<mint> exp, exp_fft, inv_exp, inv_exp_fft;
        exp = exp_fft = inv_exp = inv_exp_fft = {1};
        polynom_t<mint> h(1), q(1);
        auto diff = derivative().resize(result_size);

        for (int power = 1; power < degree; power <<= 1) {
            exp_fft = polynom_t<mint>(exp).resize(power << 1);
            fft(exp_fft);
            for (int i = 0; i < power; i++) {
                h[i] = exp_fft[i] * inv_exp_fft[i];
            }
            inv_fft(h);

            std::fill(h.begin(), h.begin() + ((power + 1) >> 1), 0);
            fft(h);
            for (int i = 0; i < power; i++) {
                h[i] *= -inv_exp_fft[i];
            }
            inv_fft(h);

            for (int i = (power + 1) / 2; i < power; i++) {
                inv_exp.push_back(h[i]);
            }
            inv_exp_fft = polynom_t<mint>(inv_exp).resize(power << 1);
            fft(inv_exp_fft);

            h.assign(power, 0);
            std::copy(diff.begin(), diff.begin() + power - 1, h.begin());
            fft(h);
            for (int i = 0; i < power; i++) {
                q[i] = exp_fft[i] * h[i];
            }
            inv_fft(q);

            h.resize(power << 1);
            for (int i = 1; i < power; i++) {
                h[i] = exp[i] * i;
            }
            for (int i = 0; i < power; i++) {
                h[i + 1] -= q[i];
            }
            h[0] = -q[power - 1];
            fft(h);

            q.resize(power << 1);
            for (int i = 0; i < (power << 1); i++) {
                q[i] = inv_exp_fft[i] * h[i];
            }
            inv_fft(q);

            if (static_cast<int>(size()) >= power) {
                h.assign(begin() + power, begin() + std::min<int>(power << 1, size()));
            } else {
                h.clear();
            }
            h.resize(power);

            for (int i = power - 1; i >= 0; i--) {
                h[i] -= q[i] * fft_data.inv(i + power);
            }
            h.resize(power << 1);
            fft(h);
            for (int i = 0; i < (power << 1); i++) {
                q[i] = exp_fft[i] * h[i];
            }
            inv_fft(q);

            exp.resize(power << 1);
            for (int i = 0; i < power; i++) {
                exp[power + i] = q[i];
            }
        }
        return exp.resize(degree);
    }

    // Returns p^{d} modulo x^{degree}.
    // O(n log).
    polynom_t<mint> power(int64_t d, int degree) const {
        if (!d || !degree) {
            return polynom_t<mint>{1}.resize(degree);
        }
        int pos = 0;
        while (pos < static_cast<int>(size()) && (*this)[pos] == mint(0)) {
            pos++;
        }
        if (pos == static_cast<int>(size()) || pos >= (degree + d - 1) / d) {
            return polynom_t<mint>(degree);
        }

        int coeffs_left = degree - d * pos;
        polynom_t<mint> result = ((polynom_t<mint>(begin() + pos, end()) / (*this)[pos]).log(coeffs_left)
                                  * mint(d)).exp(coeffs_left) * (*this)[pos].power(d);
        result.resize(degree);
        for (int i = degree - 1; i - (degree - coeffs_left) >= 0; i--) {
            result[i] = result[i - (degree - coeffs_left)];
        }
        std::fill(result.begin(), result.end() - coeffs_left, mint(0));
        return result;
    }

    template<typename V>
    std::enable_if_t<!std::is_same_v<V, polynom_t<mint>>, polynom_t<mint>&> operator*=(const V &value) {
        for (auto &x : *this) {
            x *= value;
        }
        return *this;
    }

    template<typename V>
    std::enable_if_t<!std::is_same_v<V, polynom_t<mint>>, polynom_t<mint>&> operator/=(const V &value) {
        for (auto &x : *this) {
            x /= value;
        }
        return *this;
    }

    friend std::ostream& operator<<(std::ostream &out, const polynom_t<mint> &p) {
        for (int i = 0; i < static_cast<int>(p.size()); i++) {
            if (i) out << ' ';
            out << p[i];
        }
        return out;
    }

    friend polynom_t<mint> operator+(const polynom_t<mint> &p, const polynom_t<mint> &q) {
        return polynom_t(p) += q;
    }

    friend polynom_t<mint> operator-(const polynom_t<mint> &p, const polynom_t<mint> &q) {
        return polynom_t(p) -= q;
    }

    friend polynom_t<mint> operator*(const polynom_t<mint> &p, const polynom_t<mint> &q) {
        return polynom_t(p) *= q;
    }

    friend polynom_t<mint> operator/(const polynom_t<mint> &p, const polynom_t<mint> &q) {
        return polynom_t(p) /= q;
    }

    friend polynom_t<mint> operator%(const polynom_t<mint> &p, const polynom_t<mint> &q) {
        return polynom_t(p) %= q;
    }

    template<typename V>
    friend std::enable_if_t<!std::is_same_v<V, polynom_t<mint>>, polynom_t<mint>>
    operator*(const V &value, const polynom_t<mint> &p) {
        return polynom_t<mint>(p) *= value;
    }

    template<typename V>
    friend std::enable_if_t<!std::is_same_v<V, polynom_t<mint>>, polynom_t<mint>>
    operator*(const polynom_t<mint> &p, const V &value) {
        return polynom_t<mint>(p) *= value;
    }

    template<typename V>
    friend std::enable_if_t<!std::is_same_v<V, polynom_t<mint>>, polynom_t<mint>>
    operator/(const V &value, const polynom_t<mint> &p) {
        return polynom_t<mint>(p) /= value;
    }

    template<typename V>
    friend std::enable_if_t<!std::is_same_v<V, polynom_t<mint>>, polynom_t<mint>>
    operator/(const polynom_t<mint> &p, const V &value) {
        return polynom_t<mint>(p) /= value;
    }
};

using polynom = polynom_t<mint>;

string s;

const int N = 2e5 + 5;
vpi g[N];
mint dp[N][2];

polynom mul(vector<polynom> &pp, int l, int r) {
    if (l + 1 == r) {
        return pp[l];
    }
    int m = (l + r) >> 1;
    return mul(pp, l, m) * mul(pp, m, r);
}

// ok = 1  p->v
// ok = 0  v->p
void dfs(int v, int p, int ok) {
    vector<polynom> pp;
    int q = 0;
    for(auto &[u, tp] : g[v]) {
        if (u == p) continue;
        dfs(u, v, tp);
        q++;
        polynom po = {0, 0, 0};
        po[1] = dp[u][0];
        char w = (tp == 1 ? 'F' : 'S');
        if (s[v] != w) {
            po[2] = dp[u][1];
        } else {
            po[0] = dp[u][1];
        }
        pp.push_back(po);
    }
    polynom res;
    if (pp.empty()) {
        res = {1};
    } else {
        res = mul(pp, 0, pp.size());
    }
    res.resize(q + 3);
    {
        dp[v][0] += res[q] + res[q + 1];
    }
    char need = (ok ? 'F' : 'S');
    if (s[v] == need) {
        dp[v][1] += res[q] + (q > 0 ? res[q - 1] : 0);
    } else {
        dp[v][1] += res[q + 1] + res[q + 2];
    }
//    cerr << v << ' ' << dp[v][0] << '\n';
}

void solve() {
    int n; cin >> n;
    cin >> s;
    rep(_, n - 1) {
        int u, v; cin >> u >> v;
        u--;
        v--;
        g[u].emplace_back(v, 1);
        g[v].emplace_back(u, 0);
    }
    dfs(0, -1, 0);
    cout << dp[0][0] << '\n';
}

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout << setprecision(12) << fixed;
    int t = 1;
//    cin >> t;
    rep(i, t) {
        solve();
    }
    return 0;
}

详细

Test #1:

score: 100
Accepted
time: 2ms
memory: 5128kb

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: 5800kb

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: 5164kb

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: 2ms
memory: 6904kb

input:

2
FS
1 2

output:

1

result:

ok 1 number(s): "1"

Test #5:

score: 0
Accepted
time: 2ms
memory: 6036kb

input:

3
FFF
3 1
3 2

output:

1

result:

ok 1 number(s): "1"

Test #6:

score: 0
Accepted
time: 0ms
memory: 7380kb

input:

4
FFFF
1 2
4 2
2 3

output:

1

result:

ok 1 number(s): "1"

Test #7:

score: 0
Accepted
time: 2ms
memory: 5672kb

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: 2ms
memory: 6576kb

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: 349ms
memory: 37280kb

input:

199995
FSSFFFSSSFSFFSSSFSSSSSFSFSSSFSFFSSFSFSFFFSSSFSSFSFFSFFFFSSFFSSSFFSFSFFFFFFFFFFFFFSSSFSSFFFSSSFSFSSSFFFSFFSFSSSSFSFSFSFSSFFSFSFFSFFSSFSSSFSFFSSSFFSFFFSFFSFSFSFSFSSSFSSSSFFSSFFFFFSFSSSFFSSSSSSSSFFFSFSFFSSSFSFFFFFSFFFFSSSSSSSFFFSFFSFSSSFSFSFFFFSFSSFSSFFFSSFFFSSFSFFFSSSFSFSSFFSFSFFSFFSSFSFSSSSFFF...

output:

233157276

result:

ok 1 number(s): "233157276"

Test #10:

score: 0
Accepted
time: 325ms
memory: 37088kb

input:

199996
FSSFFSFSSSFFFFFFSFSSFSFFSSFFFFFFFSSSFFSFSSFSSFSFSSFSSSFFFFSFFFFFFSSSSFFFSFSSFSSFFSSFSFFSSSSSFSFFFFSFSFFSFSSFSFSSSSSFSFSSSFFSSFSSFSFFSFFSSFSFSSFSSSFSSSFFSSFFFFSFFSFSFSFFFSFSSSFFSFFSSSSSSSSFSSFSSFSSSSFSSSFSSSFSFFFFFFSFFSSSFSSFFFSFSFSFSSSFSFFSSSSFSSFSFSSFSSFSFFFSSSFFSSFSFSFFSSSFFFFSSSSSSSFSSSFFF...

output:

509139031

result:

ok 1 number(s): "509139031"

Test #11:

score: 0
Accepted
time: 330ms
memory: 36244kb

input:

199997
FFSSSFSSFSFSFSSSSFSFFSSFFFSSFFSSSSSSFSSSFFSSSFFFSFFSFSFSSSFFSSSFSFFFFFSSFFSSFFFFSSSFFFFSSSSFFFSSFFSSSFSFFSFSFSFSFFSSFSFSSSFSSFSSFSFFSSFFFSFSSFSFFSSSFSFFSFFFFSSFFSFSFFFSFSFFSFSFSFFSSFFFSSFSFFSFSSSSSFFFFFSSSSSSSSSFFFFSSFFFSSFFSFSFSSSFSFSFFSSSSFSFSFFFSSFSSFFSFFSSFSSSSSSSFSSSFSSSFSFSSSSFSFFSSSFSS...

output:

917209642

result:

ok 1 number(s): "917209642"

Test #12:

score: 0
Accepted
time: 341ms
memory: 36328kb

input:

199998
FFFSSSSSFSSSFFFFFFSSSSFSSFFFSFSSFFFSFFFFSFFFFFFFSSSFFSFSFFSFSFSFFSSFSFFSFSFSFSFFSSFFSFFFSFSFSSSSFSSSFFFSSSSFFSFFFFSFFFFFFSFSSFSFSSFFSSFSFFSFSSFSFSSFSSSSFSSFFSSFSSSSSSSSFFSFFSSSSSSSSSSSSFFSSFFFFFFSSFFSFFFFSSFFFSFFSSFFFFFFFFSFSSFSSSSFFSFSFFSSSSFSFSFFFSSFSFFFSFFSSFFSSSSSSSFSSSFFFSSFSSSSSFFFFSFSF...

output:

722227522

result:

ok 1 number(s): "722227522"

Test #13:

score: 0
Accepted
time: 338ms
memory: 36336kb

input:

199999
FSFSFSFSSFSSSFSSFFSFSFFFFFFSSFSSSFSFSSFFSSSFSSSFSSSFSFFSFSFFFFFFSFFFSFSSSSSSFFSFFSFFFFFFFSSSFFFSFFSSSFSFSSSSSFSSFSFSFFSFSFFSSFSFSSFFSFSSSSSSSSSSSFFSSSSSFSFFFSFFSFFFSFFFFFSFFFFSSSSSSSFFFFSFFSSSFSFSSFFFFSSFSFSFSSSFSSSSFSSFSFFSFFFSSFSSFFFSFSFFFSFFFFSFSFSSSSSSSFFSSFFFSSFSSSSSFSSSFFFFFSFSSSFFFSFFS...

output:

22915769

result:

ok 1 number(s): "22915769"

Test #14:

score: 0
Accepted
time: 342ms
memory: 37020kb

input:

200000
SFSSSSFSFFSFFFSFSFSSSSSSSSFFSSSFFSFFSSFFFFFFFFFFSSFFFFFFFSFFSFFFFFSSSFFFSFFSFFFFFSSFFSFFFFSSSFSFFSFSSFSFFFFFFFSFFSSFSSFSSFFSSFSSSSSFSSSSFFSFFFFFSSFSFFSFFFSSSSFFSFFFFFSSSSSSFFFSFFSFFFSFFFFFFSSSFSFFFFFSFSSSFFSSSFSFSFSSSFFFFFSSFFFSFSFFFSFSSSSSFSFFSFSSFFSSFSFFFFFSSFSFSFFFSSSFSFFFFSSSSFFFSSFFSFSFS...

output:

246807982

result:

ok 1 number(s): "246807982"

Test #15:

score: 0
Accepted
time: 427ms
memory: 29308kb

input:

199980
SFSFFSSSSSFSSSFFFSSSSFFSSFSSSSFFFFSSFFSSFFFFSFSSFFSSSSSFFFSSSSFFFFFFFSFFSFSSSFSFFFFSFSFFSFSFFSFSFSFSFFSSSSFFSSFSSFFFFSFSFFFFFSSSFSFFFFFFSFFSSSFFSSSFFSSSFSFSFSSSFSSSFSSSSSFSFFFSSSFSSSFFSFSFSFFFSSSSFSSSFSSFSSSFFFFFSFFSFFFFSSSFFSSFFSSSFSSSFSSSFSSFSFSSFSFSFFSSSSFSSFSSSSSSSFSSSSSSSFSSSSSFFSFFFSFFS...

output:

854698427

result:

ok 1 number(s): "854698427"

Test #16:

score: 0
Accepted
time: 326ms
memory: 29132kb

input:

199981
SFFSSFSSFSSSFSSSFSSFSFSSFFFFFFFFSFFFFFSFFFSSFSFSFFSSFSFFFFFSFFFFSSSFFSSFSSFSSSFFSFFSSSFFSSSFSFSSFFFSSFFFSSSSFFSFSFFSFSSFSFSFSFSSSSFFSSSSFSSFSSSSFSFSSSFSFSFFFSSSFSFSFFFFSSSSSSFFSSFSSFSFSFFSFFSSSSSSFFSFFSFFSSFFSFSFSFSFSSSFFSFFFSSFFSSFFFFSSFSSFSSSSSFFSSSFFSSFFSFFFSSSSSFSSFFSFSFFSFFSFSSSFFFSFSSSS...

output:

990783292

result:

ok 1 number(s): "990783292"

Test #17:

score: 0
Accepted
time: 306ms
memory: 24732kb

input:

199982
SFFSSSFSFSSSFFFFSSFFFFSFSSSSFFFSFSFFSSFFSSFSSSFSFSFSSFFSSSSSFSSFSFFFSSFSFSSSSSSFSSFSFSFSFFSSSSFSFSSSSFSSSSSFSSSSSSFSFFSFSSSFSFSSSFFFSFSSSFSSSFFFSSFFSSFSSFSFFSSSSSFSSSFFSFSFSFSFSFFSSFFSFFFSSSFSFFFSFFSSSFSSSFSSSFSFSSSFFSSSSFSFSFFSFFSFSSFSSFFFSFFFSFFFSSFSFFSFSSSFSSFFSSFSSFSSSSSSSSFFFSSFFFFSFFSSF...

output:

535880887

result:

ok 1 number(s): "535880887"

Test #18:

score: 0
Accepted
time: 334ms
memory: 31040kb

input:

199983
SSFSFFSSSFFFFSSSSSFSFFFSFSFFSFSSSSSFSFFSFSSFFSSSFFFSFFFSFFFFSFFSFFSFFSSSSSSSSFFSFSSFSSFSFFFSFFSFFSSSFFFFFSFSSFSFFFFFSFFFFFSSSFSFSFSSSSSFSSFSSSSSFSSSFSFSSSFFFFSSFSSFSSSSSFFFFSSFFSSSSSSFFSSFFSFFFSFFSFSFSFFSFFFSFSFFFSFSSFFSFFFSSSFSFFSSSSFSSSFFSSFSFSFFFFFFFSSSSSFFFSSSSSSSSFFFFSFFSSSFSSFSFSFSSFSFS...

output:

29372676

result:

ok 1 number(s): "29372676"

Test #19:

score: 0
Accepted
time: 413ms
memory: 27520kb

input:

199984
SSSFFSSSSFFFFFFFFFFFSSSFSSSSSSSFSSFFSSFFSFFFFFSSFSFFFFFSSSSFFSSSSSFSSSFSFSFFSSSSFSSFFSSFFSFFSSSFSFSFSFSSFSSFFFFSFFFSSSSSFFSSSFSFFFSSFFFSFFSFSSSSFSFSSFSFSFSFFFSSFFFFFFFFSSFSFFFSFSSSSFFSFSSFSFSFSFSFSSSSSSSFFFSFSSSFFSSFFFFSSFSSFFSFFSSSSFFFFFSSSSSFFFSSSFSSFFSFFSFFSFSFSSSSFFSFSSFSFFFSSSFFFFFFSFSFF...

output:

525200447

result:

ok 1 number(s): "525200447"

Test #20:

score: 0
Accepted
time: 311ms
memory: 27140kb

input:

199985
SSSFSSFSFFFFSFSFFFFSFSSSFSFFSSSFFFSFSFSFSFSSSFFSFSFFSSFFFFFFFFFSFFSSFSSFSFSFSFFSSSFFSSSFSFFFFFFFSSSFFFFFSSSSFSFFFSFFFSSSSSSSSFFSFFSSFFFSSSFSSFFFSSFFSFSFSSSFSFFSSFFFFSFFSFSSSSFSFFSSSSSFFSFSFFFSSSFFSSSFFFSSFSFFFSFFFFFSFFSFFSSSFSFFFSSSFSSFFFSSFFSSFSSSSFFFFFSSFFSFSFFFSSFFFFFSFSSFFFFSSSFFFSFFSFSFF...

output:

497376383

result:

ok 1 number(s): "497376383"

Test #21:

score: 0
Accepted
time: 325ms
memory: 36124kb

input:

199986
SFSSSFSSFFSSSSFSFFFFFSFSSFFSFSSSSFSFFSSSFSFSFSFSFFSFFSFFFSSFSSSSSFSSSSSFFFSFFSSSFSFFSSSSSFFSFSSFSSSFSFSFSSFFSFSFFFFSFFFSSSFSFFFSFSSSFSFFFSSFSSSSFSSSFFSFFFFFSFFSFFSSSSSSSFSSSFSFSFSSSSFSFSSFSSSFFSFFFFFSFFFSFSSSSSSFSFSFSSFFSSFSSSFFSFSFFFSFFSSSFFFFSFFSFFFSFSFSSFFFFSSSSSSFFFSSSSFSFSSFFSFSFFSFFFFSS...

output:

494235109

result:

ok 1 number(s): "494235109"

Test #22:

score: 0
Accepted
time: 334ms
memory: 27588kb

input:

199987
FFFSSSSSSSSSSFSFSFFFSFSFFFSFFSSSFFFSFFFFSSSFFSSSFSSFSSFSSFFFFSFSSSFFFSFFSFFFFFFSFSFFFSSSSSFSSFFSSFSFFFFSFSSSSFSSFFFFFFFSFFFSFSFSFSSFSFSSFFFSSSFSFFSFSFFFFSSFSSFSFFFSSFSFSSFFFSSFSSFSSFFFFSSFFSFFSFSFFFFFFSSFFSFSFSFFSFFSFSFFFFSSSFSSSFSFFSSFSFFFSSFSSSFFSSSFFFFFSFFFSSSFSSSFFFFSFSSFFSFFFSFFFSSFFFFSF...

output:

390614605

result:

ok 1 number(s): "390614605"

Test #23:

score: 0
Accepted
time: 321ms
memory: 30732kb

input:

199988
FFFSFFFSSSFSSSFSSFFSSFFSSFFSFFSSSSSSFSFFFFFFSSSSFSSFSFFSFSSSFFFFFFSFSSSSFSSSFSSSSFSFSSSFFFFFFSSSFSSFSSSFFSFFFSFFFSFSSSSFFFFFFSFFSSFFSSSSSSSSSFSFSFFSFFFFFSSFSSFSSSFSFSFFSSFFFFFFSFFSSSSSFSFSSFFSSSSFFFFSSSFSFFSFFSSFSSFSSFSSSFFSFSSSSSFFSFSFSFFFSSSFFFSFFSFSSSFSFFSFFSFFSSFFFSSFSSFSFFFFSSFSSFSSSFFFF...

output:

808212748

result:

ok 1 number(s): "808212748"

Test #24:

score: 0
Accepted
time: 319ms
memory: 29172kb

input:

199989
FSFFFSSSFSFFFSSFFSFFFFFFFFSFSFSFFSFSFFSSSFSFFFSSFFFSFFFSSFFSSSSFSFFFFSFSSSSSFFFSSFSSFSSSFSFFSFFSFFSSFSFSFSFSSFFSFFFFSSSFSSFFFSFFSSFFSFSFFFFFSSFSFFSFFFFFFFFFSSFSSSSFFSSSSFSSSSFSSFFSSSFFFSFFFFSSFFFSFSFFSFSSFFFFSSSFFSSFFFSSFFSSFFFSSSFSSFFFFSSSSFSSFSSFFSFFSSFSSFFFSFFSSSSFSSFFFSSFFFSSSSSSSSSSSFFFS...

output:

245218183

result:

ok 1 number(s): "245218183"

Test #25:

score: 0
Accepted
time: 0ms
memory: 6020kb

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: 2ms
memory: 6720kb

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: 5128kb

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: 2ms
memory: 6108kb

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: 2ms
memory: 5200kb

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: 2ms
memory: 5980kb

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: 2ms
memory: 6196kb

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: 6948kb

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: 5996kb

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: 2ms
memory: 6596kb

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: 0ms
memory: 6552kb

input:

4269
SFFFSFSSSSFFFFSFFFSFFSSFSFSSFSSSFSFFFSFSFSSFFFSFFSFFSFSSSFFSSSSFSFFFFFFFSFSSFFFSFFSFFFFSFFFFFSSFFSFFFFSSSFSSSSSFFFSSSSFFFSSFFFSSSSSSFFSFSSSFFFSSSSFSFSSFFFSSFSFSSSSFFFSSSFFFSSSFSSFFSSSSSSFFFFSFFSSSSFFSSSFFFFSFFFFSSFFSFFFSFSFFSFFFFFFSFSSSSFSFSFSSSFFSFFFSSSSFSFFFSSSSSFFSSSSFSSFSSSFSFFFSFSSFFSSFFFF...

output:

159892112

result:

ok 1 number(s): "159892112"

Test #36:

score: 0
Accepted
time: 4ms
memory: 6792kb

input:

4269
SFSFFSFSFFFFSSFSSFSSSSFSFFFFFSSSSSFFFFFFSFFSSFSFFSFFFSSSFSSFFFFSFSSFSFFFFSFSSSSSFFSFFFFFSSFFFFFSFSFSSFFFSFFFSFSSFFFSFFSFFFSFFFFSSSSSFSFSSFFFFFFFSFSFSSFSFSSSFFFSFSSFSSFSSSFFSFFFFFFFSFFFSSSSSFFFFFFSSFFFFFSSFFFFSFSSSFSFSFSSSFSFSSFSFSFFFSSSSFFFFSSFSSFSSFSFSFSSSFFFFSSFSFSSSSFSFSSFSSSFFFSFSFSFSSSFFFF...

output:

856340324

result:

ok 1 number(s): "856340324"

Test #37:

score: 0
Accepted
time: 0ms
memory: 5400kb

input:

4269
SFSSFFFSFFSFSSSFSFSSSSFSSFSSSSSFFSSFFSSSSFSSFSFFFFSSSSSSSFFFFSSSSFSSFFSSSSFSSFFSSFFFSSSFSFFSSSSSFFFSFFSSFFSSFSFSFSFFFFFFSFSFFSFSFFSFSFFSFSSSFSSFFFSSFSFSFFFSFFFSSSFFSFFFSSSFSSFFFSSFSSSSSSSSFSSSSFSFFSSSFFFFFSSSFFFSFFFSFSSSFFFFFFSSFSSFSFFSFSFSFSFSFFSSFSSSSSFSFSSFSFFSSFFSFSSSSSFSSFSFSFSSSSSFSSSFSSF...

output:

812166003

result:

ok 1 number(s): "812166003"

Test #38:

score: 0
Accepted
time: 2ms
memory: 7244kb

input:

4269
SSSSFSSSSFSSSFFSFFSFFFSFFSFFSSFFSFFFFFSSFSFFFSFFFSSSFSSFFSSFSFFSFFFSSFFSFSSSSSSSFSFFFSSSSFFSFFSSFSFSSFFFFFSFSSFFSFFSSSFSSSSFFSFFFFSFSSFFSFSFFFFSSFFFFSFSFSSSFFFSSFSSFSSSSFSSFFSSFSSFSSFFSSFFSSFSSSSFFSSFFSSFSSFSSFSSFFSFSSFFSFSFFSFSFFSFSSFSFFSSSFFFFSSFFSFFSSFFSSFSFFSSSSFFFSFSFSSFFSFSSFSFSFSSFFSSFSS...

output:

913190270

result:

ok 1 number(s): "913190270"

Test #39:

score: 0
Accepted
time: 4ms
memory: 6508kb

input:

4269
SSFSSSFSFFFSSSSFFSSSFFFSSSFSSFFSFFSSSSFFSSSFSFSFFFSSFFSFFFFFFSFSSSSSFFSSFFSSSFFFFSFSSSSSFSFFSSFSSFFSFFFSFFFSSFFSSFFFSSSSFSSSSSFFFFSFSFFSFSFSFFSFSFSSSFSSSFSSFSSSFFSSFSFSSSFSFSSSFFSFSFSSSFFSFFSFFFFFFSSSSFFSSSSFFFFSFSFFFSFFFSSFSFFFSFSSSFFFSFSFSSSSSFFFSSSSFFFSSSFSSSSFSSSFFSSFSSFSFSSSFFSSSSSSFFSSSSS...

output:

963325596

result:

ok 1 number(s): "963325596"

Test #40:

score: 0
Accepted
time: 143ms
memory: 17528kb

input:

199980
SFSFFSSSSSFSSSFFFSSSSFFSSFSSSSFFFFSSFFSSFFFFSFSSFFSSSSSFFFSSSSFFFFFFFSFFSFSSSFSFFFFSFSFFSFSFFSFSFSFSFFSSSSFFSSFSSFFFFSFSFFFFFSSSFSFFFFFFSFFSSSFFSSSFFSSSFSFSFSSSFSSSFSSSSSFSFFFSSSFSSSFFSFSFSFFFSSSSFSSSFSSFSSSFFFFFSFFSFFFFSSSFFSSFFSSSFSSSFSSSFSSFSFSSFSFSFFSSSSFSSFSSSSSSSFSSSSSSSFSSSSSFFSFFFSFFS...

output:

131662118

result:

ok 1 number(s): "131662118"

Test #41:

score: 0
Accepted
time: 134ms
memory: 17604kb

input:

199981
SFFSSFSSFSSSFSSSFSSFSFSSFFFFFFFFSFFFFFSFFFSSFSFSFFSSFSFFFFFSFFFFSSSFFSSFSSFSSSFFSFFSSSFFSSSFSFSSFFFSSFFFSSSSFFSFSFFSFSSFSFSFSFSSSSFFSSSSFSSFSSSSFSFSSSFSFSFFFSSSFSFSFFFFSSSSSSFFSSFSSFSFSFFSFFSSSSSSFFSFFSFFSSFFSFSFSFSFSSSFFSFFFSSFFSSFFFFSSFSSFSSSSSFFSSSFFSSFFSFFFSSSSSFSSFFSFSFFSFFSFSSSFFFSFSSSS...

output:

357767781

result:

ok 1 number(s): "357767781"

Test #42:

score: 0
Accepted
time: 145ms
memory: 17604kb

input:

199982
SFFSSSFSFSSSFFFFSSFFFFSFSSSSFFFSFSFFSSFFSSFSSSFSFSFSSFFSSSSSFSSFSFFFSSFSFSSSSSSFSSFSFSFSFFSSSSFSFSSSSFSSSSSFSSSSSSFSFFSFSSSFSFSSSFFFSFSSSFSSSFFFSSFFSSFSSFSFFSSSSSFSSSFFSFSFSFSFSFFSSFFSFFFSSSFSFFFSFFSSSFSSSFSSSFSFSSSFFSSSSFSFSFFSFFSFSSFSSFFFSFFFSFFFSSFSFFSFSSSFSSFFSSFSSFSSSSSSSSFFFSSFFFFSFFSSF...

output:

927723161

result:

ok 1 number(s): "927723161"

Test #43:

score: 0
Accepted
time: 143ms
memory: 17296kb

input:

199983
SSFSFFSSSFFFFSSSSSFSFFFSFSFFSFSSSSSFSFFSFSSFFSSSFFFSFFFSFFFFSFFSFFSFFSSSSSSSSFFSFSSFSSFSFFFSFFSFFSSSFFFFFSFSSFSFFFFFSFFFFFSSSFSFSFSSSSSFSSFSSSSSFSSSFSFSSSFFFFSSFSSFSSSSSFFFFSSFFSSSSSSFFSSFFSFFFSFFSFSFSFFSFFFSFSFFFSFSSFFSFFFSSSFSFFSSSSFSSSFFSSFSFSFFFFFFFSSSSSFFFSSSSSSSSFFFFSFFSSSFSSFSFSFSSFSFS...

output:

120451617

result:

ok 1 number(s): "120451617"

Test #44:

score: 0
Accepted
time: 141ms
memory: 17400kb

input:

199984
SSSFFSSSSFFFFFFFFFFFSSSFSSSSSSSFSSFFSSFFSFFFFFSSFSFFFFFSSSSFFSSSSSFSSSFSFSFFSSSSFSSFFSSFFSFFSSSFSFSFSFSSFSSFFFFSFFFSSSSSFFSSSFSFFFSSFFFSFFSFSSSSFSFSSFSFSFSFFFSSFFFFFFFFSSFSFFFSFSSSSFFSFSSFSFSFSFSFSSSSSSSFFFSFSSSFFSSFFFFSSFSSFFSFFSSSSFFFFFSSSSSFFFSSSFSSFFSFFSFFSFSFSSSSFFSFSSFSFFFSSSFFFFFFSFSFF...

output:

423303699

result:

ok 1 number(s): "423303699"

Test #45:

score: 0
Accepted
time: 128ms
memory: 17356kb

input:

199985
SSSFSSFSFFFFSFSFFFFSFSSSFSFFSSSFFFSFSFSFSFSSSFFSFSFFSSFFFFFFFFFSFFSSFSSFSFSFSFFSSSFFSSSFSFFFFFFFSSSFFFFFSSSSFSFFFSFFFSSSSSSSSFFSFFSSFFFSSSFSSFFFSSFFSFSFSSSFSFFSSFFFFSFFSFSSSSFSFFSSSSSFFSFSFFFSSSFFSSSFFFSSFSFFFSFFFFFSFFSFFSSSFSFFFSSSFSSFFFSSFFSSFSSSSFFFFFSSFFSFSFFFSSFFFFFSFSSFFFFSSSFFFSFFSFSFF...

output:

525376118

result:

ok 1 number(s): "525376118"

Test #46:

score: 0
Accepted
time: 131ms
memory: 17308kb

input:

199986
SFSSSFSSFFSSSSFSFFFFFSFSSFFSFSSSSFSFFSSSFSFSFSFSFFSFFSFFFSSFSSSSSFSSSSSFFFSFFSSSFSFFSSSSSFFSFSSFSSSFSFSFSSFFSFSFFFFSFFFSSSFSFFFSFSSSFSFFFSSFSSSSFSSSFFSFFFFFSFFSFFSSSSSSSFSSSFSFSFSSSSFSFSSFSSSFFSFFFFFSFFFSFSSSSSSFSFSFSSFFSSFSSSFFSFSFFFSFFSSSFFFFSFFSFFFSFSFSSFFFFSSSSSSFFFSSSSFSFSSFFSFSFFSFFFFSS...

output:

46878101

result:

ok 1 number(s): "46878101"

Test #47:

score: 0
Accepted
time: 125ms
memory: 17528kb

input:

199987
FFFSSSSSSSSSSFSFSFFFSFSFFFSFFSSSFFFSFFFFSSSFFSSSFSSFSSFSSFFFFSFSSSFFFSFFSFFFFFFSFSFFFSSSSSFSSFFSSFSFFFFSFSSSSFSSFFFFFFFSFFFSFSFSFSSFSFSSFFFSSSFSFFSFSFFFFSSFSSFSFFFSSFSFSSFFFSSFSSFSSFFFFSSFFSFFSFSFFFFFFSSFFSFSFSFFSFFSFSFFFFSSSFSSSFSFFSSFSFFFSSFSSSFFSSSFFFFFSFFFSSSFSSSFFFFSFSSFFSFFFSFFFSSFFFFSF...

output:

995576278

result:

ok 1 number(s): "995576278"

Test #48:

score: 0
Accepted
time: 124ms
memory: 17360kb

input:

199988
FFFSFFFSSSFSSSFSSFFSSFFSSFFSFFSSSSSSFSFFFFFFSSSSFSSFSFFSFSSSFFFFFFSFSSSSFSSSFSSSSFSFSSSFFFFFFSSSFSSFSSSFFSFFFSFFFSFSSSSFFFFFFSFFSSFFSSSSSSSSSFSFSFFSFFFFFSSFSSFSSSFSFSFFSSFFFFFFSFFSSSSSFSFSSFFSSSSFFFFSSSFSFFSFFSSFSSFSSFSSSFFSFSSSSSFFSFSFSFFFSSSFFFSFFSFSSSFSFFSFFSFFSSFFFSSFSSFSFFFFSSFSSFSSSFFFF...

output:

140483963

result:

ok 1 number(s): "140483963"

Test #49:

score: 0
Accepted
time: 126ms
memory: 17244kb

input:

199989
FSFFFSSSFSFFFSSFFSFFFFFFFFSFSFSFFSFSFFSSSFSFFFSSFFFSFFFSSFFSSSSFSFFFFSFSSSSSFFFSSFSSFSSSFSFFSFFSFFSSFSFSFSFSSFFSFFFFSSSFSSFFFSFFSSFFSFSFFFFFSSFSFFSFFFFFFFFFSSFSSSSFFSSSSFSSSSFSSFFSSSFFFSFFFFSSFFFSFSFFSFSSFFFFSSSFFSSFFFSSFFSSFFFSSSFSSFFFFSSSSFSSFSSFFSFFSSFSSFFFSFFSSSSFSSFFFSSFFFSSSSSSSSSSSFFFS...

output:

85945824

result:

ok 1 number(s): "85945824"

Test #50:

score: 0
Accepted
time: 115ms
memory: 17592kb

input:

199990
FSSFFFFFFSSFFFFFFFFSFSFSSFSSFFFFSSFFFSFFFFFFSSSFSSFFFSFFSFFFFSSSSSSFSFFFSFSSSSSSSFSSSSFSFSFFSSSSFSSSSSFSSSSFFFSFSSSSSSFSFSFSFSFSFSSFSSFSFSSFSSFSSFSSSFFSFFFSSSFSFFSSSSFFFSSSFSFFSFSSSSSFSFFFFFSFSFSFSSSSSSSSSSSFSFSFFFFSFSFSFSFSSSSFFSFSSFFSSFFFFFFFSFSSFSSFFFSFFSFFSFFFSSFFSSFFSSSSFSFFFSFFFSFSSFSFF...

output:

837172100

result:

ok 1 number(s): "837172100"

Test #51:

score: 0
Accepted
time: 126ms
memory: 17604kb

input:

199991
FFSFFSSSFSFSSFSSSFSFSFSFFFFFFFFFFSSFSFSSSSSSSFSFSFSFSSFFFSSSFSFSFFFFFFFSFSFSSFFSSFSSFSSFSSFSFFFSFFSSFSSFFSSSFFSSSFSFSFFFFSSFFSFSFSSFSFFFSFFFSFSFSSSFFFFFFSFSSSFSFFFSSFSFFSSSFFFFSSSSSFFFSSFSSFFSFFFFSSSFSFFSSSFSFFFFFFSFSSFSSSSFFSFFFFFFFSFSFSFFSSFSSSFFSSFSFSSSSSSFFSSFSSSFSSSFFSFFFFFFFSFSFFSSSFSFS...

output:

582784115

result:

ok 1 number(s): "582784115"

Test #52:

score: 0
Accepted
time: 135ms
memory: 17592kb

input:

199992
FFFSFFSSSFFSSSFFSSSFFFSFSFFSSFFFSFFFSSSFFSFSFFFFSFSFFSFSSFSSSFFSSSSFSFSSSSFFSSSSFFFSSSSFSFFSSSFSSSSFSFFSFSFFSSFSSFSSFFSFSFSFFSFFSSSSSSSSFSSSSSFFFSFSFFSFFSSSSSFSSFSFFSFSFFFFSSSFSSSSSFSSSSSSFSSSSSFFSFSSFSSFSSSSSFSFSSSSFFSFFSFFFFSSFFFFFFFFFFSSSSSFSSFFFSFFFFSFSSFSSSFSSSFFSSFSSSSSFFSSSSFFFSSFSFSSF...

output:

459791581

result:

ok 1 number(s): "459791581"

Test #53:

score: 0
Accepted
time: 120ms
memory: 17564kb

input:

199993
FFFSSSFSSFSSSFSSSSSSFFFSFSSSSSFSFFFSSFFFSFSFSFFFSSSSSFFSSSFSFSSSFSFFFFFSFSSFSFFSSFFSFSSSSSFFSFSFSSSFFFSFSSSSFFFFSSSFFSSFSFSFFSFFSFSSFFSSSFFFSSSSSSFFSFSFFFFSSFSSFFSFFSFFFSFFSFSSFFSSSSFFSSSFSFFFSFSFFFSFFSFSSFFSFFFFSSFFSFSFSFSFSSSSFSSFFSFFFFSSSFSSFFFFFFSSSSFSFSFSFFFFSSFFSSSSFSFSFSFSSSFSSFSFFSSSF...

output:

632483050

result:

ok 1 number(s): "632483050"

Test #54:

score: 0
Accepted
time: 127ms
memory: 17308kb

input:

199994
FSFSSSSSFFSFSSFFFSSFSFSFSSFFSSFSFFSSSSFSSFFFSSFFSFSSSFFFFFSSSFFFSFSSSFSFSFSFFSSFSSFSSSSSFSFFFSFFSFSFSFFSSSFFFFFSSFSSFSFFFSSFFFFFSFSSFFSFSFSSSFFFSSSSFSSFSSFSSFSFFFFFSFSSFSSFFSSSFSFSSFSSSSFSFFSFFSSFFFSSSFFSSFSFSFSFSSSSFSFFFFFFSFFSSSSSSSSFSSSFFFFFFSSSSFFFSSFSFSSSSFSSSSSSFSFSSSSFFSFFFSSSSSSFFSFSS...

output:

198965372

result:

ok 1 number(s): "198965372"

Test #55:

score: 0
Accepted
time: 131ms
memory: 17308kb

input:

199995
FSSFFFSSSFSFFSSSFSSSSSFSFSSSFSFFSSFSFSFFFSSSFSSFSFFSFFFFSSFFSSSFFSFSFFFFFFFFFFFFFSSSFSSFFFSSSFSFSSSFFFSFFSFSSSSFSFSFSFSSFFSFSFFSFFSSFSSSFSFFSSSFFSFFFSFFSFSFSFSFSSSFSSSSFFSSFFFFFSFSSSFFSSSSSSSSFFFSFSFFSSSFSFFFFFSFFFFSSSSSSSFFFSFFSFSSSFSFSFFFFSFSSFSSFFFSSFFFSSFSFFFSSSFSFSSFFSFSFFSFFSSFSFSSSSFFF...

output:

553909431

result:

ok 1 number(s): "553909431"

Test #56:

score: 0
Accepted
time: 122ms
memory: 17600kb

input:

199996
FSSFFSFSSSFFFFFFSFSSFSFFSSFFFFFFFSSSFFSFSSFSSFSFSSFSSSFFFFSFFFFFFSSSSFFFSFSSFSSFFSSFSFFSSSSSFSFFFFSFSFFSFSSFSFSSSSSFSFSSSFFSSFSSFSFFSFFSSFSFSSFSSSFSSSFFSSFFFFSFFSFSFSFFFSFSSSFFSFFSSSSSSSSFSSFSSFSSSSFSSSFSSSFSFFFFFFSFFSSSFSSFFFSFSFSFSSSFSFFSSSSFSSFSFSSFSSFSFFFSSSFFSSFSFSFFSSSFFFFSSSSSSSFSSSFFF...

output:

532351273

result:

ok 1 number(s): "532351273"

Test #57:

score: 0
Accepted
time: 119ms
memory: 17352kb

input:

199997
FFSSSFSSFSFSFSSSSFSFFSSFFFSSFFSSSSSSFSSSFFSSSFFFSFFSFSFSSSFFSSSFSFFFFFSSFFSSFFFFSSSFFFFSSSSFFFSSFFSSSFSFFSFSFSFSFFSSFSFSSSFSSFSSFSFFSSFFFSFSSFSFFSSSFSFFSFFFFSSFFSFSFFFSFSFFSFSFSFFSSFFFSSFSFFSFSSSSSFFFFFSSSSSSSSSFFFFSSFFFSSFFSFSFSSSFSFSFFSSSSFSFSFFFSSFSSFFSFFSSFSSSSSSSFSSSFSSSFSFSSSSFSFFSSSFSS...

output:

320626910

result:

ok 1 number(s): "320626910"

Test #58:

score: 0
Accepted
time: 125ms
memory: 17368kb

input:

199998
FFFSSSSSFSSSFFFFFFSSSSFSSFFFSFSSFFFSFFFFSFFFFFFFSSSFFSFSFFSFSFSFFSSFSFFSFSFSFSFFSSFFSFFFSFSFSSSSFSSSFFFSSSSFFSFFFFSFFFFFFSFSSFSFSSFFSSFSFFSFSSFSFSSFSSSSFSSFFSSFSSSSSSSSFFSFFSSSSSSSSSSSSFFSSFFFFFFSSFFSFFFFSSFFFSFFSSFFFFFFFFSFSSFSSSSFFSFSFFSSSSFSFSFFFSSFSFFFSFFSSFFSSSSSSSFSSSFFFSSFSSSSSFFFFSFSF...

output:

318058822

result:

ok 1 number(s): "318058822"

Test #59:

score: 0
Accepted
time: 103ms
memory: 17608kb

input:

199999
FSFSFSFSSFSSSFSSFFSFSFFFFFFSSFSSSFSFSSFFSSSFSSSFSSSFSFFSFSFFFFFFSFFFSFSSSSSSFFSFFSFFFFFFFSSSFFFSFFSSSFSFSSSSSFSSFSFSFFSFSFFSSFSFSSFFSFSSSSSSSSSSSFFSSSSSFSFFFSFFSFFFSFFFFFSFFFFSSSSSSSFFFFSFFSSSFSFSSFFFFSSFSFSFSSSFSSSSFSSFSFFSFFFSSFSSFFFSFSFFFSFFFFSFSFSSSSSSSFFSSFFFSSFSSSSSFSSSFFFFFSFSSSFFFSFFS...

output:

565502702

result:

ok 1 number(s): "565502702"

Test #60:

score: 0
Accepted
time: 114ms
memory: 17608kb

input:

200000
SFSSSSFSFFSFFFSFSFSSSSSSSSFFSSSFFSFFSSFFFFFFFFFFSSFFFFFFFSFFSFFFFFSSSFFFSFFSFFFFFSSFFSFFFFSSSFSFFSFSSFSFFFFFFFSFFSSFSSFSSFFSSFSSSSSFSSSSFFSFFFFFSSFSFFSFFFSSSSFFSFFFFFSSSSSSFFFSFFSFFFSFFFFFFSSSFSFFFFFSFSSSFFSSSFSFSFSSSFFFFFSSFFFSFSFFFSFSSSSSFSFFSFSSFFSSFSFFFFFSSFSFSFFFSSSFSFFFFSSSSFFFSSFFSFSFS...

output:

287002924

result:

ok 1 number(s): "287002924"

Test #61:

score: 0
Accepted
time: 3ms
memory: 6520kb

input:

4269
SFFFSFSSSSFFFFSFFFSFFSSFSFSSFSSSFSFFFSFSFSSFFFSFFSFFSFSSSFFSSSSFSFFFFFFFSFSSFFFSFFSFFFFSFFFFFSSFFSFFFFSSSFSSSSSFFFSSSSFFFSSFFFSSSSSSFFSFSSSFFFSSSSFSFSSFFFSSFSFSSSSFFFSSSFFFSSSFSSFFSSSSSSFFFFSFFSSSSFFSSSFFFFSFFFFSSFFSFFFSFSFFSFFFFFFSFSSSSFSFSFSSSFFSFFFSSSSFSFFFSSSSSFFSSSSFSSFSSSFSFFFSFSSFFSSFFFF...

output:

988025762

result:

ok 1 number(s): "988025762"

Test #62:

score: 0
Accepted
time: 7ms
memory: 6288kb

input:

4269
SFSFFSFSFFFFSSFSSFSSSSFSFFFFFSSSSSFFFFFFSFFSSFSFFSFFFSSSFSSFFFFSFSSFSFFFFSFSSSSSFFSFFFFFSSFFFFFSFSFSSFFFSFFFSFSSFFFSFFSFFFSFFFFSSSSSFSFSSFFFFFFFSFSFSSFSFSSSFFFSFSSFSSFSSSFFSFFFFFFFSFFFSSSSSFFFFFFSSFFFFFSSFFFFSFSSSFSFSFSSSFSFSSFSFSFFFSSSSFFFFSSFSSFSSFSFSFSSSFFFFSSFSFSSSSFSFSSFSSSFFFSFSFSFSSSFFFF...

output:

149785076

result:

ok 1 number(s): "149785076"

Test #63:

score: 0
Accepted
time: 6ms
memory: 6804kb

input:

4269
SFSSFFFSFFSFSSSFSFSSSSFSSFSSSSSFFSSFFSSSSFSSFSFFFFSSSSSSSFFFFSSSSFSSFFSSSSFSSFFSSFFFSSSFSFFSSSSSFFFSFFSSFFSSFSFSFSFFFFFFSFSFFSFSFFSFSFFSFSSSFSSFFFSSFSFSFFFSFFFSSSFFSFFFSSSFSSFFFSSFSSSSSSSSFSSSSFSFFSSSFFFFFSSSFFFSFFFSFSSSFFFFFFSSFSSFSFFSFSFSFSFSFFSSFSSSSSFSFSSFSFFSSFFSFSSSSSFSSFSFSFSSSSSFSSSFSSF...

output:

284273231

result:

ok 1 number(s): "284273231"

Test #64:

score: 0
Accepted
time: 6ms
memory: 7352kb

input:

4269
SSSSFSSSSFSSSFFSFFSFFFSFFSFFSSFFSFFFFFSSFSFFFSFFFSSSFSSFFSSFSFFSFFFSSFFSFSSSSSSSFSFFFSSSSFFSFFSSFSFSSFFFFFSFSSFFSFFSSSFSSSSFFSFFFFSFSSFFSFSFFFFSSFFFFSFSFSSSFFFSSFSSFSSSSFSSFFSSFSSFSSFFSSFFSSFSSSSFFSSFFSSFSSFSSFSSFFSFSSFFSFSFFSFSFFSFSSFSFFSSSFFFFSSFFSFFSSFFSSFSFFSSSSFFFSFSFSSFFSFSSFSFSFSSFFSSFSS...

output:

501945813

result:

ok 1 number(s): "501945813"

Test #65:

score: 0
Accepted
time: 6ms
memory: 6836kb

input:

4269
SSFSSSFSFFFSSSSFFSSSFFFSSSFSSFFSFFSSSSFFSSSFSFSFFFSSFFSFFFFFFSFSSSSSFFSSFFSSSFFFFSFSSSSSFSFFSSFSSFFSFFFSFFFSSFFSSFFFSSSSFSSSSSFFFFSFSFFSFSFSFFSFSFSSSFSSSFSSFSSSFFSSFSFSSSFSFSSSFFSFSFSSSFFSFFSFFFFFFSSSSFFSSSSFFFFSFSFFFSFFFSSFSFFFSFSSSFFFSFSFSSSSSFFFSSSSFFFSSSFSSSSFSSSFFSSFSSFSFSSSFFSSSSSSFFSSSSS...

output:

699376251

result:

ok 1 number(s): "699376251"

Test #66:

score: 0
Accepted
time: 333ms
memory: 28940kb

input:

199990
FSSFFFFFFSSFFFFFFFFSFSFSSFSSFFFFSSFFFSFFFFFFSSSFSSFFFSFFSFFFFSSSSSSFSFFFSFSSSSSSSFSSSSFSFSFFSSSSFSSSSSFSSSSFFFSFSSSSSSFSFSFSFSFSFSSFSSFSFSSFSSFSSFSSSFFSFFFSSSFSFFSSSSFFFSSSFSFFSFSSSSSFSFFFFFSFSFSFSSSSSSSSSSSFSFSFFFFSFSFSFSFSSSSFFSFSSFFSSFFFFFFFSFSSFSSFFFSFFSFFSFFFSSFFSSFFSSSSFSFFFSFFFSFSSFSFF...

output:

572585899

result:

ok 1 number(s): "572585899"

Test #67:

score: 0
Accepted
time: 418ms
memory: 31216kb

input:

199991
FFSFFSSSFSFSSFSSSFSFSFSFFFFFFFFFFSSFSFSSSSSSSFSFSFSFSSFFFSSSFSFSFFFFFFFSFSFSSFFSSFSSFSSFSSFSFFFSFFSSFSSFFSSSFFSSSFSFSFFFFSSFFSFSFSSFSFFFSFFFSFSFSSSFFFFFFSFSSSFSFFFSSFSFFSSSFFFFSSSSSFFFSSFSSFFSFFFFSSSFSFFSSSFSFFFFFFSFSSFSSSSFFSFFFFFFFSFSFSFFSSFSSSFFSSFSFSSSSSSFFSSFSSSFSSSFFSFFFFFFFSFSFFSSSFSFS...

output:

106691066

result:

ok 1 number(s): "106691066"

Test #68:

score: 0
Accepted
time: 347ms
memory: 36312kb

input:

199992
FFFSFFSSSFFSSSFFSSSFFFSFSFFSSFFFSFFFSSSFFSFSFFFFSFSFFSFSSFSSSFFSSSSFSFSSSSFFSSSSFFFSSSSFSFFSSSFSSSSFSFFSFSFFSSFSSFSSFFSFSFSFFSFFSSSSSSSSFSSSSSFFFSFSFFSFFSSSSSFSSFSFFSFSFFFFSSSFSSSSSFSSSSSSFSSSSSFFSFSSFSSFSSSSSFSFSSSSFFSFFSFFFFSSFFFFFFFFFFSSSSSFSSFFFSFFFFSFSSFSSSFSSSFFSSFSSSSSFFSSSSFFFSSFSFSSF...

output:

951998399

result:

ok 1 number(s): "951998399"

Test #69:

score: 0
Accepted
time: 337ms
memory: 37108kb

input:

199993
FFFSSSFSSFSSSFSSSSSSFFFSFSSSSSFSFFFSSFFFSFSFSFFFSSSSSFFSSSFSFSSSFSFFFFFSFSSFSFFSSFFSFSSSSSFFSFSFSSSFFFSFSSSSFFFFSSSFFSSFSFSFFSFFSFSSFFSSSFFFSSSSSSFFSFSFFFFSSFSSFFSFFSFFFSFFSFSSFFSSSSFFSSSFSFFFSFSFFFSFFSFSSFFSFFFFSSFFSFSFSFSFSSSSFSSFFSFFFFSSSFSSFFFFFFSSSSFSFSFSFFFFSSFFSSSSFSFSFSFSSSFSSFSFFSSSF...

output:

716409060

result:

ok 1 number(s): "716409060"

Test #70:

score: 0
Accepted
time: 303ms
memory: 24840kb

input:

199994
FSFSSSSSFFSFSSFFFSSFSFSFSSFFSSFSFFSSSSFSSFFFSSFFSFSSSFFFFFSSSFFFSFSSSFSFSFSFFSSFSSFSSSSSFSFFFSFFSFSFSFFSSSFFFFFSSFSSFSFFFSSFFFFFSFSSFFSFSFSSSFFFSSSSFSSFSSFSSFSFFFFFSFSSFSSFFSSSFSFSSFSSSSFSFFSFFSSFFFSSSFFSSFSFSFSFSSSSFSFFFFFFSFFSSSSSSSSFSSSFFFFFFSSSSFFFSSFSFSSSSFSSSSSSFSFSSSSFFSFFFSSSSSSFFSFSS...

output:

287920786

result:

ok 1 number(s): "287920786"

Test #71:

score: 0
Accepted
time: 439ms
memory: 28896kb

input:

199995
FSSFFFSSSFSFFSSSFSSSSSFSFSSSFSFFSSFSFSFFFSSSFSSFSFFSFFFFSSFFSSSFFSFSFFFFFFFFFFFFFSSSFSSFFFSSSFSFSSSFFFSFFSFSSSSFSFSFSFSSFFSFSFFSFFSSFSSSFSFFSSSFFSFFFSFFSFSFSFSFSSSFSSSSFFSSFFFFFSFSSSFFSSSSSSSSFFFSFSFFSSSFSFFFFFSFFFFSSSSSSSFFFSFFSFSSSFSFSFFFFSFSSFSSFFFSSFFFSSFSFFFSSSFSFSSFFSFSFFSFFSSFSFSSSSFFF...

output:

619531008

result:

ok 1 number(s): "619531008"

Test #72:

score: 0
Accepted
time: 335ms
memory: 28712kb

input:

199996
FSSFFSFSSSFFFFFFSFSSFSFFSSFFFFFFFSSSFFSFSSFSSFSFSSFSSSFFFFSFFFFFFSSSSFFFSFSSFSSFFSSFSFFSSSSSFSFFFFSFSFFSFSSFSFSSSSSFSFSSSFFSSFSSFSFFSFFSSFSFSSFSSSFSSSFFSSFFFFSFFSFSFSFFFSFSSSFFSFFSSSSSSSSFSSFSSFSSSSFSSSFSSSFSFFFFFFSFFSSSFSSFFFSFSFSFSSSFSFFSSSSFSSFSFSSFSSFSFFFSSSFFSSFSFSFFSSSFFFFSSSSSSSFSSSFFF...

output:

11372220

result:

ok 1 number(s): "11372220"

Test #73:

score: 0
Accepted
time: 435ms
memory: 27820kb

input:

199997
FFSSSFSSFSFSFSSSSFSFFSSFFFSSFFSSSSSSFSSSFFSSSFFFSFFSFSFSSSFFSSSFSFFFFFSSFFSSFFFFSSSFFFFSSSSFFFSSFFSSSFSFFSFSFSFSFFSSFSFSSSFSSFSSFSFFSSFFFSFSSFSFFSSSFSFFSFFFFSSFFSFSFFFSFSFFSFSFSFFSSFFFSSFSFFSFSSSSSFFFFFSSSSSSSSSFFFFSSFFFSSFFSFSFSSSFSFSFFSSSSFSFSFFFSSFSSFFSFFSSFSSSSSSSFSSSFSSSFSFSSSSFSFFSSSFSS...

output:

838488621

result:

ok 1 number(s): "838488621"

Test #74:

score: 0
Accepted
time: 328ms
memory: 26452kb

input:

199998
FFFSSSSSFSSSFFFFFFSSSSFSSFFFSFSSFFFSFFFFSFFFFFFFSSSFFSFSFFSFSFSFFSSFSFFSFSFSFSFFSSFFSFFFSFSFSSSSFSSSFFFSSSSFFSFFFFSFFFFFFSFSSFSFSSFFSSFSFFSFSSFSFSSFSSSSFSSFFSSFSSSSSSSSFFSFFSSSSSSSSSSSSFFSSFFFFFFSSFFSFFFFSSFFFSFFSSFFFFFFFFSFSSFSSSSFFSFSFFSSSSFSFSFFFSSFSFFFSFFSSFFSSSSSSSFSSSFFFSSFSSSSSFFFFSFSF...

output:

23711524

result:

ok 1 number(s): "23711524"

Test #75:

score: 0
Accepted
time: 322ms
memory: 24948kb

input:

199999
FSFSFSFSSFSSSFSSFFSFSFFFFFFSSFSSSFSFSSFFSSSFSSSFSSSFSFFSFSFFFFFFSFFFSFSSSSSSFFSFFSFFFFFFFSSSFFFSFFSSSFSFSSSSSFSSFSFSFFSFSFFSSFSFSSFFSFSSSSSSSSSSSFFSSSSSFSFFFSFFSFFFSFFFFFSFFFFSSSSSSSFFFFSFFSSSFSFSSFFFFSSFSFSFSSSFSSSSFSSFSFFSFFFSSFSSFFFSFSFFFSFFFFSFSFSSSSSSSFFSSFFFSSFSSSSSFSSSFFFFFSFSSSFFFSFFS...

output:

217802478

result:

ok 1 number(s): "217802478"

Test #76:

score: 0
Accepted
time: 325ms
memory: 25672kb

input:

200000
SFSSSSFSFFSFFFSFSFSSSSSSSSFFSSSFFSFFSSFFFFFFFFFFSSFFFFFFFSFFSFFFFFSSSFFFSFFSFFFFFSSFFSFFFFSSSFSFFSFSSFSFFFFFFFSFFSSFSSFSSFFSSFSSSSSFSSSSFFSFFFFFSSFSFFSFFFSSSSFFSFFFFFSSSSSSFFFSFFSFFFSFFFFFFSSSFSFFFFFSFSSSFFSSSFSFSFSSSFFFFFSSFFFSFSFFFSFSSSSSFSFFSFSSFFSSFSFFFFFSSFSFSFFFSSSFSFFFFSSSSFFFSSFFSFSFS...

output:

587382866

result:

ok 1 number(s): "587382866"

Test #77:

score: 0
Accepted
time: 7ms
memory: 5868kb

input:

6942
SSSSSFSSFSFFFFSFFSFFSFSSSSFFFSSSSSSSSSSSSFFSSFSSSFSSFSSFSFSFSSFFFSSFFFFSFSFSFFSFSFSSFFFSSSFFFSFFFFFFFFSFSFFSSSFSSFSSFFFSFSSFFFSSFFSFSSFFSFFSSFFSSSSSFFSSSSSFFSSSSSFFFSSFSFSSSSSSFFSFFFSSFSSSSFSSSSSSFFSFSSFFSFSSFFSSFFFSSSSSFSFSFFSFFFSFFSSSSFFFSSFFSSSSSFSSFSFFSFSSSSSSFFSFSFFFSSSSFFFFFSFFSSSSSFSFFFS...

output:

647088399

result:

ok 1 number(s): "647088399"

Test #78:

score: 0
Accepted
time: 3ms
memory: 7044kb

input:

6942
SSFSSSFSSSFSSSFSFFFSSFFFFSSSFSSFFSFSSFSFSFSFFFSSSFSSSSSFFSFFSFFFSSFFSFFSSSSSFSFFSFSSSFFFSFFFSFSFSSFFFFFSFFSFFFSFSSSFSSSSSFSFFFFSFSSFFSFFFSSFSFFFFSSFSFSFSFSFSSSSFFSSSSFSSFSSSFSSFSSFFSFFFSSFFSFSFFSSFFSSSSSSFSFSSFFFFSSFFSFSSFSSSSFFSSSFSFSSSFFFFFSSFFSFSFFSFFFSSFFSSSFFFFSFSFSSFSFFFFFSFSFSSFSSSFSSSFS...

output:

58335146

result:

ok 1 number(s): "58335146"

Test #79:

score: 0
Accepted
time: 0ms
memory: 7248kb

input:

6942
SFFFFFSSSSSSSSSFFFFSFSFSSSFFFSFFSFFSSSFSFSFFSSFSSSSSSFSSSFSFFSSFFFSFFFSSFFFSFFSFFFFSFFFFSSFSFSFFSFFFSFSFFFSSSFSSSFSSSSSFSFSSFFFSFSSFFFFSFSFSSSSSFFFSFFSFSSFFSFFSFFSSSFFFSSFSFSSFFFSFFFSSFSFSSSFFSSFSSSFFFFFSFSSFFFSFFSFSSFFSFFFSFFFSSSSSSSFSSSSSFFSFFSFFFSFFFFSSFFFSFFFSFFFFSFFSFSSSFSSSSSFFSSFFFFSSFSS...

output:

591276387

result:

ok 1 number(s): "591276387"

Test #80:

score: 0
Accepted
time: 6ms
memory: 7356kb

input:

6942
SFFFFFFSFSSSSFFSSFFFSSSSFSSSSSFFFFSSSFFSSSSFSSFSSFFSFFSSSSFSSFFFSSFSSFFFSFFFSSFFSFFSSFFSFSFSSFSFSFFSFFFSSFFFSSFFSFSFFFFFFSSSFSFFSSSSFSSFSFFSSFFSSFFFSFFFSFSFSFFSSFFSFSSSSFFFFFFFFFFFFFFFFSFSFFSFSFFSSSFSFFSFFSFFSFFFSSFFFFSFSSSSFFSSSFSSSFFSFFSSSSFSFFFFSSSSFSSFFFSSSFSSFFFFSFSFSSSFFFFFSSFSSFFFFFFFSSF...

output:

57049203

result:

ok 1 number(s): "57049203"

Test #81:

score: 0
Accepted
time: 6ms
memory: 6448kb

input:

6942
SFSFSSFSFFFFFSSFSFFSSSFFSFSFSFFSSFFSFSSFFFFSFFSSSFFSSFSFFFSSSSSFFFSSSFSFFFSFSFSFSSFFSFFSFFFFFSFSSSFSSFSFSFSSFFFSSSSSFFSFFSFSSSFFSSSSSFSFFSSFSFSFFFSSSFFFFSFFSFFSFFSFSSSSSFSFFSFFSSFFFSFSFFSFFFFSFSSFSSFFSSSFFFSSFFSFSFSFSFFFFSFSSSSSSFSSFFFFFFFFSFFFSSSSSSFFFFSSSFFSFSFFFFSFFFFFFSFSFFFFSSFSSSFFFFFFSSF...

output:

552170569

result:

ok 1 number(s): "552170569"

Test #82:

score: 0
Accepted
time: 236ms
memory: 23160kb

input:

199990
FSSFFFFFFSSFFFFFFFFSFSFSSFSSFFFFSSFFFSFFFFFFSSSFSSFFFSFFSFFFFSSSSSSFSFFFSFSSSSSSSFSSSSFSFSFFSSSSFSSSSSFSSSSFFFSFSSSSSSFSFSFSFSFSFSSFSSFSFSSFSSFSSFSSSFFSFFFSSSFSFFSSSSFFFSSSFSFFSFSSSSSFSFFFFFSFSFSFSSSSSSSSSSSFSFSFFFFSFSFSFSFSSSSFFSFSSFFSSFFFFFFFSFSSFSSFFFSFFSFFSFFFSSFFSSFFSSSSFSFFFSFFFSFSSFSFF...

output:

889655158

result:

ok 1 number(s): "889655158"

Test #83:

score: 0
Accepted
time: 263ms
memory: 23036kb

input:

199991
FFSFFSSSFSFSSFSSSFSFSFSFFFFFFFFFFSSFSFSSSSSSSFSFSFSFSSFFFSSSFSFSFFFFFFFSFSFSSFFSSFSSFSSFSSFSFFFSFFSSFSSFFSSSFFSSSFSFSFFFFSSFFSFSFSSFSFFFSFFFSFSFSSSFFFFFFSFSSSFSFFFSSFSFFSSSFFFFSSSSSFFFSSFSSFFSFFFFSSSFSFFSSSFSFFFFFFSFSSFSSSSFFSFFFFFFFSFSFSFFSSFSSSFFSSFSFSSSSSSFFSSFSSSFSSSFFSFFFFFFFSFSFFSSSFSFS...

output:

494331015

result:

ok 1 number(s): "494331015"

Test #84:

score: 0
Accepted
time: 221ms
memory: 25764kb

input:

199992
FFFSFFSSSFFSSSFFSSSFFFSFSFFSSFFFSFFFSSSFFSFSFFFFSFSFFSFSSFSSSFFSSSSFSFSSSSFFSSSSFFFSSSSFSFFSSSFSSSSFSFFSFSFFSSFSSFSSFFSFSFSFFSFFSSSSSSSSFSSSSSFFFSFSFFSFFSSSSSFSSFSFFSFSFFFFSSSFSSSSSFSSSSSSFSSSSSFFSFSSFSSFSSSSSFSFSSSSFFSFFSFFFFSSFFFFFFFFFFSSSSSFSSFFFSFFFFSFSSFSSSFSSSFFSSFSSSSSFFSSSSFFFSSFSFSSF...

output:

689624374

result:

ok 1 number(s): "689624374"

Test #85:

score: 0
Accepted
time: 217ms
memory: 25720kb

input:

199993
FFFSSSFSSFSSSFSSSSSSFFFSFSSSSSFSFFFSSFFFSFSFSFFFSSSSSFFSSSFSFSSSFSFFFFFSFSSFSFFSSFFSFSSSSSFFSFSFSSSFFFSFSSSSFFFFSSSFFSSFSFSFFSFFSFSSFFSSSFFFSSSSSSFFSFSFFFFSSFSSFFSFFSFFFSFFSFSSFFSSSSFFSSSFSFFFSFSFFFSFFSFSSFFSFFFFSSFFSFSFSFSFSSSSFSSFFSFFFFSSSFSSFFFFFFSSSSFSFSFSFFFFSSFFSSSSFSFSFSFSSSFSSFSFFSSSF...

output:

683475260

result:

ok 1 number(s): "683475260"

Test #86:

score: 0
Accepted
time: 211ms
memory: 21932kb

input:

199994
FSFSSSSSFFSFSSFFFSSFSFSFSSFFSSFSFFSSSSFSSFFFSSFFSFSSSFFFFFSSSFFFSFSSSFSFSFSFFSSFSSFSSSSSFSFFFSFFSFSFSFFSSSFFFFFSSFSSFSFFFSSFFFFFSFSSFFSFSFSSSFFFSSSSFSSFSSFSSFSFFFFFSFSSFSSFFSSSFSFSSFSSSSFSFFSFFSSFFFSSSFFSSFSFSFSFSSSSFSFFFFFFSFFSSSSSSSSFSSSFFFFFFSSSSFFFSSFSFSSSSFSSSSSSFSFSSSSFFSFFFSSSSSSFFSFSS...

output:

158196096

result:

ok 1 number(s): "158196096"

Test #87:

score: 0
Accepted
time: 252ms
memory: 21552kb

input:

199995
FSSFFFSSSFSFFSSSFSSSSSFSFSSSFSFFSSFSFSFFFSSSFSSFSFFSFFFFSSFFSSSFFSFSFFFFFFFFFFFFFSSSFSSFFFSSSFSFSSSFFFSFFSFSSSSFSFSFSFSSFFSFSFFSFFSSFSSSFSFFSSSFFSFFFSFFSFSFSFSFSSSFSSSSFFSSFFFFFSFSSSFFSSSSSSSSFFFSFSFFSSSFSFFFFFSFFFFSSSSSSSFFFSFFSFSSSFSFSFFFFSFSSFSSFFFSSFFFSSFSFFFSSSFSFSSFFSFSFFSFFSSFSFSSSSFFF...

output:

600871125

result:

ok 1 number(s): "600871125"

Test #88:

score: 0
Accepted
time: 211ms
memory: 23248kb

input:

199996
FSSFFSFSSSFFFFFFSFSSFSFFSSFFFFFFFSSSFFSFSSFSSFSFSSFSSSFFFFSFFFFFFSSSSFFFSFSSFSSFFSSFSFFSSSSSFSFFFFSFSFFSFSSFSFSSSSSFSFSSSFFSSFSSFSFFSFFSSFSFSSFSSSFSSSFFSSFFFFSFFSFSFSFFFSFSSSFFSFFSSSSSSSSFSSFSSFSSSSFSSSFSSSFSFFFFFFSFFSSSFSSFFFSFSFSFSSSFSFFSSSSFSSFSFSSFSSFSFFFSSSFFSSFSFSFFSSSFFFFSSSSSSSFSSSFFF...

output:

295471594

result:

ok 1 number(s): "295471594"

Test #89:

score: 0
Accepted
time: 262ms
memory: 22940kb

input:

199997
FFSSSFSSFSFSFSSSSFSFFSSFFFSSFFSSSSSSFSSSFFSSSFFFSFFSFSFSSSFFSSSFSFFFFFSSFFSSFFFFSSSFFFFSSSSFFFSSFFSSSFSFFSFSFSFSFFSSFSFSSSFSSFSSFSFFSSFFFSFSSFSFFSSSFSFFSFFFFSSFFSFSFFFSFSFFSFSFSFFSSFFFSSFSFFSFSSSSSFFFFFSSSSSSSSSFFFFSSFFFSSFFSFSFSSSFSFSFFSSSSFSFSFFFSSFSSFFSFFSSFSSSSSSSFSSSFSSSFSFSSSSFSFFSSSFSS...

output:

93433174

result:

ok 1 number(s): "93433174"

Test #90:

score: 0
Accepted
time: 215ms
memory: 20880kb

input:

199998
FFFSSSSSFSSSFFFFFFSSSSFSSFFFSFSSFFFSFFFFSFFFFFFFSSSFFSFSFFSFSFSFFSSFSFFSFSFSFSFFSSFFSFFFSFSFSSSSFSSSFFFSSSSFFSFFFFSFFFFFFSFSSFSFSSFFSSFSFFSFSSFSFSSFSSSSFSSFFSSFSSSSSSSSFFSFFSSSSSSSSSSSSFFSSFFFFFFSSFFSFFFFSSFFFSFFSSFFFFFFFFSFSSFSSSSFFSFSFFSSSSFSFSFFFSSFSFFFSFFSSFFSSSSSSSFSSSFFFSSFSSSSSFFFFSFSF...

output:

136831174

result:

ok 1 number(s): "136831174"

Test #91:

score: 0
Accepted
time: 220ms
memory: 20612kb

input:

199999
FSFSFSFSSFSSSFSSFFSFSFFFFFFSSFSSSFSFSSFFSSSFSSSFSSSFSFFSFSFFFFFFSFFFSFSSSSSSFFSFFSFFFFFFFSSSFFFSFFSSSFSFSSSSSFSSFSFSFFSFSFFSSFSFSSFFSFSSSSSSSSSSSFFSSSSSFSFFFSFFSFFFSFFFFFSFFFFSSSSSSSFFFFSFFSSSFSFSSFFFFSSFSFSFSSSFSSSSFSSFSFFSFFFSSFSSFFFSFSFFFSFFFFSFSFSSSSSSSFFSSFFFSSFSSSSSFSSSFFFFFSFSSSFFFSFFS...

output:

957993216

result:

ok 1 number(s): "957993216"

Test #92:

score: 0
Accepted
time: 215ms
memory: 21356kb

input:

200000
SFSSSSFSFFSFFFSFSFSSSSSSSSFFSSSFFSFFSSFFFFFFFFFFSSFFFFFFFSFFSFFFFFSSSFFFSFFSFFFFFSSFFSFFFFSSSFSFFSFSSFSFFFFFFFSFFSSFSSFSSFFSSFSSSSSFSSSSFFSFFFFFSSFSFFSFFFSSSSFFSFFFFFSSSSSSFFFSFFSFFFSFFFFFFSSSFSFFFFFSFSSSFFSSSFSFSFSSSFFFFFSSFFFSFSFFFSFSSSSSFSFFSFSSFFSSFSFFFFFSSFSFSFFFSSSFSFFFFSSSSFFFSSFFSFSFS...

output:

777222734

result:

ok 1 number(s): "777222734"

Extra Test:

score: 0
Extra Test Passed