QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#803952#9868. GCDucup-team159#AC ✓6ms3900kbC++2321.1kb2024-12-07 19:37:382024-12-07 19:37:42

Judging History

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

  • [2024-12-07 19:37:42]
  • 评测
  • 测评结果:AC
  • 用时:6ms
  • 内存:3900kb
  • [2024-12-07 19:37:38]
  • 提交

answer

#line 1 "ucup3-20/G/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/math.hpp"

#line 5 "/home/vscode/yosupo-library/src/yosupo/math.hpp"
#include <initializer_list>
#include <limits>
#line 8 "/home/vscode/yosupo-library/src/yosupo/math.hpp"

namespace yosupo {

// binary gcd
inline unsigned long long gcd(unsigned long long a, unsigned long long b) {
    if (a == 0) return b;
    if (b == 0) return a;
    int shift;
    {
        int a_bsf = std::countr_zero(a);
        a >>= a_bsf;
        int b_bsf = std::countr_zero(b);
        b >>= b_bsf;
        shift = std::min(a_bsf, b_bsf);
    }
    while (a != b) {
        if (a > b) std::swap(a, b);
        b -= a;
        b >>= std::countr_zero(b);
    }
    return (a << shift);
}
inline long long gcd(long long a, long long b) {
    unsigned long long _a = a, _b = b;
    if ((unsigned long long)std::numeric_limits<long long>::max() < _a)
        _a = -_a;
    if ((unsigned long long)std::numeric_limits<long long>::max() < _b)
        _b = -_b;
    return gcd(_a, _b);
}
inline unsigned int gcd(unsigned int a, unsigned int b) {
    return (unsigned int)gcd((unsigned long long)a, (unsigned long long)b);
}
inline int gcd(int a, int b) { return (int)gcd((long long)a, (long long)b); }

// @param m `1 <= m`
// @return x ** n % m
inline unsigned long long pow_mod_u64(unsigned long long x,
                               unsigned long long n,
                               unsigned long long m) {
    if (m == 1) return 0;
    unsigned long long r = 1;
    unsigned long long y = x % m;
    while (n) {
        if (n & 1) r = (unsigned long long)((unsigned __int128)(1) * r * y % m);
        y = (unsigned long long)((unsigned __int128)(1) * y * y % m);
        n >>= 1;
    }
    return r;
}

inline bool is_prime(unsigned int n) {
    if (n == 2) return true;
    if (n % 2 == 0) return false;
    unsigned long long d = n - 1;
    while (d % 2 == 0) d /= 2;
    for (unsigned long long a : {2, 7, 61}) {
        if (a % n == 0) return true;
        unsigned long long t = d;
        unsigned long long y = pow_mod_u64(a, t, n);
        while (t != n - 1 && y != 1 && y != n - 1) {
            y = (unsigned long long)((unsigned __int128)(1) * y * y % n);
            t <<= 1;
        }
        if (y != n - 1 && t % 2 == 0) {
            return false;
        }
    }
    return true;
}
inline bool is_prime(unsigned long long n) {
    if (n <= std::numeric_limits<unsigned int>::max()) {
        return is_prime((unsigned int)n);
    }
    if (n % 2 == 0) return false;
    unsigned long long d = n - 1;
    while (d % 2 == 0) d /= 2;
    for (unsigned long long a :
         {2, 325, 9375, 28178, 450775, 9780504, 1795265022}) {
        if (a % n == 0) return true;
        unsigned long long t = d;
        unsigned long long y = pow_mod_u64(a, t, n);
        while (t != n - 1 && y != 1 && y != n - 1) {
            y = (unsigned long long)((unsigned __int128)(1) * y * y % n);
            t <<= 1;
        }
        if (y != n - 1 && t % 2 == 0) {
            return false;
        }
    }
    return true;
}
inline bool is_prime(int n) {
    if (n <= 1) return false;
    return is_prime((unsigned int)n);
}
inline bool is_prime(long long n) {
    if (n <= 1) return false;
    return is_prime((unsigned long long)n);
}

inline long long pollard_single(long long n) {
    if (is_prime((unsigned long long)n)) return n;
    if (n % 2 == 0) return 2;
    long long st = 0;
    auto f = [&](long long x) {
        return (long long)(((unsigned __int128)(x)*x + st) % n);
    };
    while (true) {
        st++;
        long long x = st, y = f(x);
        while (true) {
            long long p = gcd((y - x + n), n);
            if (p == 0 || p == n) break;
            if (p != 1) return p;
            x = f(x);
            y = f(f(y));
        }
    }
}

inline std::vector<long long> factor(long long n) {
    if (n == 1) return {};
    long long x = pollard_single(n);
    if (x == n) return {x};
    auto f0 = factor(x), f1 = factor(n / x);
    f0.insert(f0.end(), f1.begin(), f1.end());
    return f0;
}

}  // namespace yosupo
#line 6 "ucup3-20/G/main.cpp"
using namespace yosupo;

#line 2 "ucup3-20/G/base.hpp"

#ifdef YOSUPO_AVX2_PRAGMA
#line 5 "ucup3-20/G/base.hpp"
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#endif

#line 11 "ucup3-20/G/base.hpp"
#include <bitset>
#line 13 "ucup3-20/G/base.hpp"
#include <cmath>
#include <cstdio>
#line 16 "ucup3-20/G/base.hpp"
#include <iostream>
#include <map>
#include <queue>
#include <ranges>
#include <set>
#line 22 "ucup3-20/G/base.hpp"
#include <utility>
#line 24 "ucup3-20/G/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 9 "ucup3-20/G/main.cpp"

Scanner sc = Scanner(stdin);
Printer pr = Printer(stdout);

bool dfs(int a, ll b, int rem) {
    if (a == 0 && b == 0) return true;
    if (rem == 0) return false;

    ll g = gcd((ull)a, (ull)b);
    a /= g;
    b /= g;
    if (dfs(a - 1, b, rem - 1)) return true;
    if (dfs(a, b - 1, rem - 1)) return true;
    return false;
}

int solve(int a, ll b) {
    int ans = 1;
    while (true) {
        if (dfs(a, b, ans)) return ans;
        ans++;
    }    
}

int main() {
    int t;
    sc.read(t);

    for (int _ : iota(0, t)) {
        int a;
        ll b;
        sc.read(a, b);
        int ans = solve(a, b);
        pr.writeln(ans);
    }
    return 0;
}

这程序好像有点Bug,我给组数据试试?

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3548kb

input:

3
3 4
12 20
114 514

output:

3
4
6

result:

ok 3 lines

Test #2:

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

input:

990
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
1 14
1 15
1 16
1 17
1 18
1 19
1 20
1 21
1 22
1 23
1 24
1 25
1 26
1 27
1 28
1 29
1 30
1 31
1 32
1 33
1 34
1 35
1 36
1 37
1 38
1 39
1 40
1 41
1 42
1 43
1 44
1 45
1 46
1 47
1 48
1 49
1 50
1 51
1 52
1 53
1 54
1 55
1 56
1 57
1 58
1 59
1 60
2 3
2 4
2...

output:

2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
4
2
3
3
2
3
4
2
3
3
2
3
4
2
3
3
2
3
4
2
3
3
2
3
4
2
3
3
2
3
4
2
...

result:

ok 990 lines

Test #3:

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

input:

2
4859 299556476011016293
4859 911621905353047038

output:

13
13

result:

ok 2 lines

Test #4:

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

input:

3
3023 291106112607863999
3119 972408313573784567
1229 855784672293155279

output:

14
14
14

result:

ok 3 lines

Test #5:

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

input:

2
4023 19114808110467479
4014 412762310847841499

output:

13
13

result:

ok 2 lines

Test #6:

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

input:

3
3119 20432410732723181
1709 985601282232016799
2267 968744673868124159

output:

14
14
14

result:

ok 3 lines

Test #7:

score: 0
Accepted
time: 1ms
memory: 3876kb

input:

2
4535 722580216492418319
4307 6169979311475963

output:

13
13

result:

ok 2 lines

Test #8:

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

input:

2
4267 648637147725952319
4885 401781909910741919

output:

14
14

result:

ok 2 lines

Test #9:

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

input:

2
3023 291106112607863999
4094 673301962326128519

output:

14
13

result:

ok 2 lines

Test #10:

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

input:

2
4703 494504478938496599
3695 527072187619106999

output:

14
14

result:

ok 2 lines

Test #11:

score: 0
Accepted
time: 1ms
memory: 3544kb

input:

22
412 7166395745631535
895 676140333587834537
139 573525160802896508
56 6042824019123403
911 780448274466371463
970 313274528501049618
903 76359562805399746
104 475404596998181268
2 788944373595428631
277 204462142481604047
389 451716743142184785
369 733427971748817258
269 554386798310409825
543 37...

output:

4
8
6
4
7
6
7
6
3
8
7
6
8
6
5
7
3
3
7
6
6
5

result:

ok 22 lines

Test #12:

score: 0
Accepted
time: 1ms
memory: 3676kb

input:

24
113 419398799469164410
383 717450662733415750
443 686043628038128476
20 899250517211552654
204 346169669232649712
464 521611395675501476
410 894122452066951564
116 660159669509763780
962 217837730253597619
289 675700173448722836
130 329471777741246142
450 666991702473801195
353 760484310637419946...

output:

4
7
6
5
7
5
7
4
7
6
3
4
7
6
6
7
5
7
7
8
7
7
6
6

result:

ok 24 lines

Test #13:

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

input:

19
678 133507297980379931
818 421994924168103967
503 501259104841209060
958 877656450668252853
687 442666986748301973
268 935701093685740836
568 786234655346565680
122 866380973396331141
807 54123923233567773
245 134684982334166386
543 221806505911296821
111 652360199004860361
553 860225758175402852...

output:

7
6
7
8
7
5
4
5
6
8
7
6
7
5
5
4
5
6
7

result:

ok 19 lines

Test #14:

score: 0
Accepted
time: 1ms
memory: 3500kb

input:

19
639 901032098365122475
635 515322255447550084
374 755571300645572102
619 101430914435483134
325 510816267620930173
373 207845131647950998
558 474024480402985236
153 702042115398490774
869 45043603816784980
279 18628511044855421
103 994557089605077208
532 165081709815043226
417 349742245230246428
...

output:

9
7
6
8
6
7
4
6
6
7
5
5
7
7
5
6
6
8
8

result:

ok 19 lines

Test #15:

score: 0
Accepted
time: 1ms
memory: 3556kb

input:

199
6 349576221631571320
97 422699450330996735
31 589592746688366307
57 858302104323820939
82 390853367915026019
11 340917463299735569
32 185588466253907983
17 456086267779461856
82 44061092128004219
28 27906898155718701
17 358195386652849006
53 117524674404177851
40 287782356544825555
19 2862632394...

output:

3
6
5
5
6
5
6
2
3
3
5
5
3
5
3
4
4
5
7
3
4
2
3
3
6
5
6
5
5
5
5
6
3
7
3
5
5
6
4
8
4
5
6
6
4
5
3
3
6
4
4
5
3
4
5
6
4
5
3
5
5
2
6
3
4
3
3
4
6
5
4
5
7
5
5
5
5
3
3
6
4
7
5
6
2
4
4
6
4
4
3
5
5
2
4
3
5
5
6
4
8
6
5
3
4
6
5
7
4
6
4
4
5
4
5
3
5
4
5
5
4
7
6
6
7
6
3
7
5
4
6
7
4
3
5
5
5
6
3
4
5
5
3
6
5
6
5
4
5
7
...

result:

ok 199 lines

Test #16:

score: 0
Accepted
time: 1ms
memory: 3620kb

input:

195
51 767009661890162122
48 677544419672371709
60 591373361970104616
84 141534595240530690
87 116531056808411746
29 229632508086559065
23 470792692724825252
45 839302114508975768
94 664803074895337778
45 415372336860436849
28 202777563688922479
29 640816432615045290
100 704242439535912153
97 853111...

output:

4
5
4
5
4
4
5
5
7
4
6
4
6
5
2
7
4
3
4
4
5
6
3
4
6
6
3
7
3
6
5
5
3
7
5
7
4
8
4
5
6
5
6
8
3
5
5
6
4
7
7
5
5
6
6
5
6
5
5
3
3
5
4
4
5
5
4
5
6
3
2
3
5
3
6
7
4
6
4
4
5
6
6
5
3
5
4
7
5
4
4
5
5
4
3
4
6
4
6
5
5
5
5
5
3
5
5
2
4
2
3
6
5
5
5
3
4
3
4
6
2
6
4
5
4
5
6
3
5
3
3
2
5
4
5
5
7
4
4
6
4
4
5
5
3
6
3
5
4
4
...

result:

ok 195 lines

Test #17:

score: 0
Accepted
time: 1ms
memory: 3544kb

input:

182
48 55
95 152
62 90
100 118
20 30
39 40
60 79
62 103
20 22
5 5
29 41
12 19
84 90
100 121
61 88
75 76
73 116
35 64
32 59
88 174
82 142
28 53
79 99
83 85
65 122
86 142
34 67
85 132
80 129
46 59
74 133
61 108
47 54
63 91
17 29
75 136
34 49
54 55
98 195
76 119
45 79
25 42
4 5
89 133
19 35
55 95
62 98...

output:

4
3
4
6
3
3
5
6
3
2
7
4
3
4
6
3
7
4
6
4
6
5
6
4
5
6
4
6
4
7
6
5
7
4
6
5
5
3
4
8
6
5
3
5
5
5
5
7
5
5
7
6
5
6
2
5
4
6
5
7
5
4
3
5
6
6
6
5
5
6
4
5
6
5
5
4
6
5
5
6
4
5
6
3
4
7
6
4
4
5
4
4
5
6
3
5
4
5
6
5
5
6
3
3
6
4
3
4
4
6
7
5
6
5
4
3
6
3
6
3
3
5
5
3
2
4
5
4
4
3
4
5
4
6
3
5
4
6
6
6
7
5
5
5
4
3
7
5
7
4
...

result:

ok 182 lines

Test #18:

score: 0
Accepted
time: 1ms
memory: 3544kb

input:

201
75 142
12 16
83 160
23 38
72 128
88 107
71 139
71 95
14 17
67 128
99 170
66 128
7 13
94 144
71 95
42 51
21 28
20 22
42 65
21 42
92 97
5 10
87 102
28 41
31 46
46 53
30 36
32 61
26 34
30 33
68 84
6 8
97 147
86 100
11 17
60 68
89 136
57 86
8 8
50 76
7 9
45 79
97 192
33 41
48 77
91 133
30 45
60 96
3...

output:

6
3
4
6
3
6
5
6
4
4
5
3
4
7
6
4
3
3
5
2
4
2
5
6
5
6
3
5
5
3
5
3
5
5
5
4
6
5
2
5
4
6
3
5
5
5
3
3
2
3
5
4
5
6
4
6
4
4
5
2
4
3
5
6
5
2
5
2
2
5
4
3
2
6
5
7
6
4
6
7
2
3
6
4
7
5
3
7
4
8
7
5
5
3
3
2
2
6
4
5
2
3
2
6
6
3
4
2
7
5
7
7
6
5
4
6
5
5
5
2
5
4
3
2
6
3
5
3
2
6
4
5
2
3
3
5
4
5
4
6
6
5
6
7
6
6
3
5
2
2
...

result:

ok 201 lines

Test #19:

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

input:

2
4157 23039
4199 64439

output:

15
15

result:

ok 2 lines

Test #20:

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

input:

3
2591 31919
2879 64343
3119 91727

output:

15
15
15

result:

ok 3 lines

Test #21:

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

input:

3
2879 9722159
2939 4324319
3031 9979199

output:

16
16
16

result:

ok 3 lines

Test #22:

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

input:

3
2879 5266799
3347 9192959
3399 4324319

output:

16
16
16

result:

ok 3 lines

Test #23:

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

input:

2
4799 9729719
4859 1552318

output:

16
16

result:

ok 2 lines

Extra Test:

score: 0
Extra Test Passed