QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#725504#7735. Primitive RootGordensoulAC ✓24ms3864kbC++1428.0kb2024-11-08 18:22:322024-11-08 18:22:33

Judging History

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

  • [2024-11-08 18:22:33]
  • 评测
  • 测评结果:AC
  • 用时:24ms
  • 内存:3864kb
  • [2024-11-08 18:22:32]
  • 提交

answer

#define _CRT_SECURE_NO_WARNINGS
//#pragma GCC optimize(3, "Ofast", "inline")
#include<bits/stdc++.h>
#include<unordered_map>
#include<unordered_set>
#include<array>
#include<random>
using namespace std;
#define for1 for(int i = 1;i <= n;i++)
#define for0 for(int i = 0;i < n;i++) 
#define forj1 for(int j = 1;j <= n;j++) 
#define forj0 for(int j = 0;j < n;j++) 
#define form1 for (int j = 1; j <= m; j++)
#define form0 for (int j = 0; j < m; j++)
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define arrn int* arr = new int[n+2];arr[0] = 0,arr[n+1]=0
#define brrn int* brr = new int[n+2];brr[0] = 0,brr[n+1]=0
#define carr for1 cin >> arr[i]
#define carrn arrn;carr 
#define coarr for1 cout<<arr[i]<<" ";cout<<endl
#define yes  cout<<"Yes\n"
#define no cout<<"No\n"
#define inf 0x3f3f3f3f
#define INF 0x3f3f3f3f3f3f3f3f
#define endl '\n'
#define blank ' '
#define cn int n;cin>>n
#define cnm int n,m;cin>>n>>m
#define T() int _; cin >> _; while (_--)
#define int  long long
#define  ll long long
#define pii pair<int,int>
const int mode = 998244353;
const int mod = 1e9 + 7;
mt19937_64 rnd(time(0));
typedef uint64_t hash_t;
//chrono::high_resolution_clock::now().time_since_epoch().count()
int ksm(int a, int b = mode - 2)
{
    a %= mode;
    int ans = 1;
    while (b)
    {
        if (b % 2 == 1)
        {
            ans = ans * a % mode; b--;
        }
        a = a * a % mode;
        b >>= 1;
    }
    return ans;
}
int gcd(int a, int b)
{
    if (b == 0)return a;
    return gcd(b, a % b);
}
long long lcm(long long a, long long b)
{
    return (a * b) / gcd(a, b);
}
//const int mod = 1000002361;
bool ccmp(string x, string y)
{
    return x.size() > y.size();
}
long long qpow(int a, int b)
{
    a% mod;
    if (b == 0)return 1ll;
    int ret = 1ll;
    while (b)
    {
        if (b % 2)ret = (ret * a) % mod;
        b >>= 1;
        a = (a * a) % mod;
    }
    return ret % mod;
}

int one(int n)//计算二进制下1的个数
{
    if (n == 0)return 0;
    if (n == 1)return 1;
    int ret = 0;
    for (int i = 0; i < 63; i++)
    {
        int w = n / (1ll << (i + 1));
        ret = (ret + (w * (1ll << i))) % mode;
        int yu = n % (1ll << (i + 1));
        if (yu >= 1ll << i)
        {
            ret = (ret + (yu - (1ll << i) + 1)) % mode;
        }
    }

    return ret % mode;
}
bool isspire(int n)
{
    if (n <= 1)return false;
    if (n == 2)return true;
    for (int i = 2; i <= sqrt(n); i++)
    {
        if (n % i == 0)return false;
    }
    return true;
}

void solve() {
    int p, m;
    cin >> p >> m;
    int ans = m / p;
    if (((m / p * p + 1) ^ (p - 1)) <= m)ans++;
    if (((m / p * p + 1 + p) ^ (p - 1)) <= m)ans++;
    cout << ans << endl;
}

signed main() {
    IOS;
    T()
    {
        solve();
    }
    return 0;
}
   


//int arr[1000001];
//int sm[4000004];
//int mx[4000004];
//int mxcnt[4000004];
//int semx[4000004];
////int semxcnt[400004];
//int ad1[4000004];
//int ad2[4000004];
//int ad3[4000004];
//int ad4[4000004];
//int hismx[4000004];
//void up(int i)
//{
//    int z = i << 1;
//    int y = i << 1 | 1;
//    sm[i] = sm[z] + sm[y];
//    hismx[i] = max({hismx[z], hismx[y]});
//    if (mx[z] > mx[y])
//    {
//        mx[i] = mx[z];
//        mxcnt[i] = mxcnt[z];
//        semx[i] = max(mx[y], semx[z]);
//    }
//    else if (mx[z] < mx[y])
//    {
//        mx[i] = mx[y];
//        mxcnt[i] = mxcnt[y];
//        semx[i] = max(mx[z], semx[y]);
//    }
//    else
//    {
//        mx[i] = mx[z];
//        mxcnt[i] = mxcnt[z] + mxcnt[y];
//        semx[i] = max(semx[z], semx[y]);
//    }
//}
//void build(int l, int r, int i)
//{
//    if (l == r)
//    {
//        sm[i] = arr[l];
//        mx[i] = arr[l];
//        mxcnt[i] = 1;
//        semx[i] = -1e18;
//       // semxcnt[i] = 1;
//        ad1[i] = 0;
//        ad2[i] = 0;
//        ad3[i] = 0;
//        ad4[i] = 0;
//        hismx[i] = arr[l];
//        return;
//    }
//    int mid = (l + r) >> 1;
//    build(l, mid, i << 1);
//    build(mid + 1, r, i << 1 | 1);
//    up(i);
//    ad1[i] = 0;
//    ad2[i] = 0;
//    ad3[i] = 0;
//    ad4[i] = 0;
//}
//
//void lazy(int i, int n,int v1,int v2,int v3,int v4)
//{   
//    hismx[i] = max({ mx[i] + v3, hismx[i]});
//    ad3[i] = max(ad1[i]+v3,ad3[i]);
//    ad4[i] = max(ad2[i] + v4, ad4[i]);
//    sm[i] += v1 * mxcnt[i];
//    sm[i] += v2 * (n-mxcnt[i]);
//    mx[i] += v1;
//    semx[i] += (semx[i] == -1e18) ? 0 : v2;
//    ad1[i] += v1;
//    ad2[i] += v2;
//}
//void down(int i, int z, int y)
//{
//    int l = i << 1;
//    int r = i << 1 | 1;
//    int t = max(mx[l], mx[r]);
//    if(mx[l]>=mx[r])
//    lazy(l, z, ad1[i], ad2[i],ad3[i],ad4[i]);
//    else
//        lazy(l, z, ad2[i], ad2[i],ad4[i],ad4[i]);
//    if (mx[r]==t)
//    lazy(r, y, ad1[i], ad2[i],ad3[i],ad4[i]);
//    else
//        lazy(r, y, ad2[i], ad2[i],ad4[i],ad4[i]);
//    ad1[i] = 0;
//    ad2[i] = 0;
//    ad3[i] = 0;
//    ad4[i] = 0;
//}
//
//array<int, 3> que(int jl, int jr, int l, int r, int i)
//{
//    if (jl <= l && r <= jr)
//    {
//        return { sm[i],mx[i],hismx[i] };
//    }
//    int mid = (l + r) >> 1;
//    down(i, mid - l + 1, r - mid);
//    array<int, 3>ans = { 0,(int)-1e18,(int)-1e18 };
//    if (jl <= mid)
//    {
//        array<int, 3>a = que(jl, jr, l, mid, i << 1);
//        ans[0] += a[0];
//        ans[1] = max(ans[1], a[1]);
//        ans[2] = max(ans[2], a[2]);
//    }
//    if (mid + 1 <= jr)
//    {
//        array<int, 3>a = que(jl, jr, mid + 1, r, i << 1 | 1);
//        ans[0] += a[0];
//        ans[1] = max(ans[1], a[1]);
//        ans[2] = max(ans[2], a[2]);
//    }
//    
//    return ans;
//
//}
//void update(int jl, int jr, int jv, int l, int r, int i)
//{
//    if (jv >= mx[i])return;
//    if (l >= jl && r <= jr&&jv>semx[i])
//    {
//
//        lazy(i, r - l + 1, jv - mx[i], 0ll, jv - mx[i], 0ll);
//    }
//    else
//    {
//        int mid = (l + r) >> 1;
//        down(i, mid - l + 1, r - mid);
//        if (jl <= mid)
//            update(jl, jr, jv, l, mid, i << 1);
//        if (jr >= mid + 1)
//            update(jl, jr, jv, mid + 1, r, i << 1 | 1);
//        up(i);
//    }
//   
//}
//void _add(int jl, int jr, int jv, int l, int r, int i)
//{
//    if (l >= jl && r <= jr)
//    {
//        lazy(i, r - l + 1, jv, jv, jv, jv);
//    }
//    else
//    {
//        int mid = (l + r) >> 1;
//        down(i, mid - l + 1, r - mid);
//        if (jl <= mid)
//            _add(jl, jr, jv, l, mid, i << 1);
//        if (jr >= mid + 1)
//            _add(jl, jr, jv, mid + 1, r, i << 1 | 1);
//        up(i);
//    }
//   
//}


//int mul(int a, int b) {
//    return (int)((1ll * a * b) % mod);
//}
//int binpow(int a, int pw) {
//    int b = 1;
//    while (pw) {
//        if (pw & 1)
//            b = mul(b, a);
//        a = mul(a, a);
//        pw >>= 1;
//    }
//    return b;
//}
//int inv(int a) {
//    return binpow(a, mod - 2);
//}
//const int N = 1000001;
//int ff[N], rr[N];
//void precalc() {
//    ff[0] = 1;
//    for (int i = 1; i < N; i++)
//        ff[i] = mul(ff[i - 1], i);
//    rr[N - 1] = inv(ff[N - 1]);
//    for (int i = N - 2; i > -1; i--)
//        rr[i] = mul(rr[i + 1], i + 1);
//}
//int C(int n, int k) {
//    if (n < 0 || k < 0 || n < k)
//        return 0;
//    return mul(ff[n], mul(rr[k], rr[n - k]));
//}
//
//int add(int a, int b) {
//    if (a + b >= mod)
//        return a + b - mod;
//    return a + b;
//}
//int arr[100001];
//int mn[400004];
//int mx[400004];
//int sm[400004];
//int laz[400004];
//int change[400004];
//bool vis[400004];
//array<int, 3> build(int l, int r, int i)
//{
//    if (l == r)
//    {
//        sm[i] = arr[l];
//        mx[i] = arr[l];
//        mn[i] = arr[l];
//        laz[i] = 0;
//        return{ sm[i],mx[i],mn[i] };
//    }
//    int mid = (l + r) >> 1;
//    array<int, 3> a = build(l, mid, i << 1);
//    array<int, 3> b = build(mid + 1, r, i << 1 | 1);
//    sm[i] = a[0] + b[0];
//    mx[i] = max(a[1], b[1]);
//    mn[i] = min(a[2], b[2]);
//    laz[i] = 0;
//    return { sm[i],mx[i],mn[i] };
//}
//void lazy(int i, int n, int v)
//{
//    if (vis[i])
//    {
//        sm[i] = n * change[i];
//        mx[i] = change[i];
//        mn[i] = change[i];
//        laz[i] = change[i];
//    }
//    if (v != 0) {
//        sm[i] += n * v;
//        mx[i] += v;
//        mn[i] += v;
//        laz[i] += v;
//    }
//}
//void down(int i, int z, int y)
//{
//    if (laz[i] != 0 || vis[i])
//    {
//        lazy(i << 1, z, laz[i]);
//        lazy(i << 1 | 1, y, laz[i]);
//    }
//    laz[i] = 0; vis[i] = false;
//}
//void up(int i)
//{
//    sm[i] = sm[i << 1] + sm[i << 1 | 1];
//    mx[i] = max(mx[i << 1], mx[i << 1 | 1]);
//    mn[i] = min(mn[i << 1], mn[i << 1 | 1]);
//}
//array<int, 3> que(int jl, int jr, int l, int r, int i)
//{
//    if (jl <= l && r <= jr)
//    {
//        return{ sm[i],mx[i],mn[i] };
//    }
//    int mid = (l + r) >> 1;
//    down(i, mid - l + 1, r - mid);
//    array<int, 3>ans = { 0,-1e18,1e18 };
//    if (jl <= mid)
//    {
//        array<int, 3>a = que(jl, jr, l, mid, i << 1);
//        ans[0] += a[0];
//        ans[1] = max(a[1], ans[1]);
//        ans[2] = min(a[2], ans[2]);
//    }
//    if (jr >= mid + 1)
//    {
//        array<int, 3>a = que(jl, jr, mid + 1, r, i << 1 | 1);
//        ans[0] += a[0];
//        ans[1] = max(a[1], ans[1]);
//        ans[2] = min(a[2], ans[2]);
//    }
//    return ans;
//}
//void _add(int jl, int jr, int jv, int l, int r, int i)
//{
//    if (l >= jl && r <= jr)
//    {
//        lazy(i, r - l + 1, jv);
//    }
//    else
//    {
//        int mid = (l + r) >> 1;
//        down(i, mid - l + 1, r - mid);
//        if (jl <= mid)
//            _add(jl, jr, jv, l, mid, i << 1);
//        if (jr >= mid + 1)
//            _add(jl, jr, jv, mid + 1, r, i << 1 | 1);
//        up(i);
//    }
//}void update(int jl, int jr, int jv, int l, int r, int i)
//{
//    if (l >= jl && r <= jr)
//    {
//        change[i] = jv;
//        vis[i] = true;
//        laz[i] = 0;
//        lazy(i, r - l + 1, laz[i]);
//    }
//    else
//    {
//        int mid = (l + r) >> 1;
//        down(i, mid - l + 1, r - mid);
//        if (jl <= mid)
//            update(jl, jr, jv, l, mid, i << 1);
//        if (jr >= mid + 1)
//            update(jl, jr, jv, mid + 1, r, i << 1 | 1);
//        up(i);
//    }
//}
//int mul(int a, int b) {
//        return (int)((1ll * a * b) % mod);
//    }
//    int binpow(int a, int pw) {
//        int b = 1;
//        while (pw) {
//            if (pw & 1)
//                b = mul(b, a);
//            a = mul(a, a);
//            pw >>= 1;
//        }
//        return b;
//    }
//    int inv(int a) {
//        return binpow(a, mod - 2);
//    }
//    const int N = 100001;
//    int ff[N], rr[N];
//    void precalc() {
//        ff[0] = 1;
//        for (int i = 1; i < N; i++)
//            ff[i] = mul(ff[i - 1], i);
//        rr[N - 1] = inv(ff[N - 1]);
//        for (int i = N - 2; i > -1; i--)
//            rr[i] = mul(rr[i + 1], i + 1);
//    }
//    int C(int n, int k) {
//        if (n < 0 || k < 0 || n < k)
//            return 0;
//        return mul(ff[n], mul(rr[k], rr[n - k]));
//    }
//    
//    int add(int a, int b) {
//        if (a + b >= mod)
//            return a + b - mod;
//        return a + b;
//    }
//namespace string_hash
//{#define LL long long
//    const int N = 1e6 + 20;
//    const int mod1 = 998244353;
//    const int mod2 = 1e9 + 7;
//    const int P = 1000007;
//    LL p1[N], p2[N];
//    // 双模数初始化
//    void mod_init()
//    {
//        p1[0] = p2[0] = 1;
//        for (int i = 1; i < N; i++)
//        {
//            p1[i] = p1[i - 1] * P % mod1;
//            p2[i] = p2[i - 1] * P % mod2;
//        }
//    }
//    struct Hash_String
//    {
//        string str;
//        int string_size;
//        vector<LL> h1, h2;
//        Hash_String(string s) : str(s), h1(s.size() + 1), h2(s.size() + 1)
//        {
//            str = ' ' + str;
//            string_size = str.size() - 1;
//            for (int i = 1; i < str.size(); i++)
//            {
//                h1[i] = (h1[i - 1] * P + str[i]) % mod1;
//                h2[i] = (h2[i - 1] * P + str[i]) % mod2;
//            }
//        }
//        pair<LL, LL> get(int l, int r)
//        {
//            if (l > r)
//                return { 0, 0 };
//            // assert(l <= r && l >= 1 && r <= string_size);
//            LL res1 = ((h1[r] - h1[l - 1] * p1[r - l + 1] % mod1) % mod1 + mod1) % mod1;
//            LL res2 = ((h2[r] - h2[l - 1] * p2[r - l + 1] % mod2) % mod2 + mod2) % mod2;
//            return { res1, res2 };
//        }
//        ll oneget(int l, int r) // 用于没办法用pair,只能用一个整数,但是单hash又会错的情况
//        {
//            if (l > r)
//                return 0;
//            LL res1 = ((h1[r] - h1[l - 1] * p1[r - l + 1] % mod1) % mod1 + mod1) % mod1;
//            LL res2 = ((h2[r] - h2[l - 1] * p2[r - l + 1] % mod2) % mod2 + mod2) % mod2;
//            return (res1 + P * res2);
//        }
//        pair<LL, LL> get_substring(int l1, int r1, int l2, int r2)
//        {
//            auto [v1, v2] = get(l1, r1);
//            auto [vv1, vv2] = get(l2, r2);
//            return make_pair((v1 * p1[r2 - l2 + 1] % mod1 + vv1) % mod1, (v2 * p2[r2 - l2 + 1] % mod2 + vv2) % mod2);
//            // get_hash(l1, r1) * p[r2 - l2 + 1] + get_hash(l2, r2)
//        }
//    };
//};
//using namespace string_hash;
// int arr[100001];
//int sm1[400004];
//int sm0[400004];
//int mx1[400004];
//int mx0[400004];
//int pre1[4000004];
//int suf1[4000004];
//int pre0[4000004];
//int suf0[4000004];
//bool revers[400004];
//int change[400004];
//bool vis[400004];
//void up(int i, int l, int r)
//{
//    int mid = (l + r) >> 1;
//    sm1[i] = sm1[i << 1] + sm1[i << 1 | 1];
//    sm0[i] = sm0[i << 1] + sm0[i << 1 | 1];
//    mx1[i] = max({ mx1[i << 1],mx1[i << 1 | 1] ,suf1[i << 1] + pre1[i << 1 | 1] });
//    mx0[i] = max({ mx0[i << 1], mx0[i << 1 | 1] ,suf0[i << 1] + pre0[i << 1 | 1] });
//    if (pre1[i << 1] == mid - l + 1)
//        pre1[i] = pre1[i << 1] + pre1[i << 1 | 1];
//    else pre1[i] = pre1[i << 1];
//    if (pre0[i << 1] == mid - l + 1)
//        pre0[i] = pre0[i << 1] + pre0[i << 1 | 1];
//    else pre0[i] = pre0[i << 1];
//    if (suf1[i << 1 | 1] == r - mid)
//        suf1[i] = suf1[i << 1 | 1] + suf1[i << 1];
//    else suf1[i] = suf1[i << 1 | 1];
//    if (suf0[i << 1 | 1] == r - mid)
//        suf0[i] = suf0[i << 1 | 1] + suf0[i << 1];
//    else suf0[i] = suf0[i << 1 | 1];
//}
//void build(int l, int r, int i)
//{
//    if (l == r)
//    {
//        sm1[i] = arr[l];
//        sm0[i] = 1-arr[l];
//        mx1[i] = sm1[i];
//        mx0[i] = sm0[i];
//        pre1[i] = sm1[i];
//        pre0[i] = sm0[i];
//        suf1[i] = sm1[i];
//        suf0[i] = sm0[i];
//        vis[i] = false;
//        revers[i] = false;
//        change[i] = 0;
//        //return{ sm1[i],sm0[i],mx1[i],mx0[i],pre1[i],pre0[i],suf1[i],suf0[i] };
//        return;
//    }
//    int mid = (l + r) >> 1;
//    build(l, mid, i << 1);
//    build(mid + 1, r, i << 1 | 1);
//    up(i, l, r);
//    vis[i] = false;
//    revers[i] = false;
//    change[i] = 0;
//    //return{ sm1[i],sm0[i],mx1[i],mx0[i],pre1[i],pre0[i],suf1[i],suf0[i] };
//}
//void ulazy(int i, int n,int v)
//{
//        if (v == 1) {
//            sm1[i] = n;
//            sm0[i] = 0;
//            mx1[i] = n;
//            mx0[i] = 0;
//            pre1[i] = n;
//            pre0[i] = 0;
//            suf1[i] = n;
//            suf0[i] = 0;
//        }
//        else
//        {
//            sm1[i] = 0;
//            sm0[i] = n;
//            mx1[i] = 0;
//            mx0[i] = n;
//            pre1[i] = 0;
//            pre0[i] = n;
//            suf1[i] = 0;
//            suf0[i] = n;
//        }
//        change[i] = v;
//        vis[i] = true;
//        revers[i] = false;
//}
//void rlazy(int i, int n)
//{
//        swap(sm1[i], sm0[i]);
//        swap(mx1[i], mx0[i]);
//        swap(pre1[i], pre0[i]);
//        swap(suf1[i], suf0[i]);
//        revers[i] = !revers[i];
//}
//void down(int i, int z, int y)
//{
//    if (vis[i])
//    {
//        ulazy(i << 1, z,change[i]);
//        ulazy(i << 1 | 1, y,change[i]);
//        vis[i] = false;
//    }
//    if (revers[i])
//    {
//        rlazy(i << 1, z);
//        rlazy(i << 1 | 1, y);
//        revers[i] = false;
//    }
//}
//int ques(int jl, int jr, int l, int r, int i)
//{
//    if (jl <= l && r <= jr)
//    {
//        return sm1[i];
//    }
//    int mid = (l + r) >> 1;
//    int ans = 0;
//    down(i, mid - l + 1, r - mid);
//    //array<int, 4>ans = { 0,-1e18,0,0 };
//    if (jl <= mid)
//    {
//        ans+= ques(jl, jr, l, mid, i << 1);
//
//    }
//    if (mid + 1 <= jr)
//    {
//        ans+=  ques(jl, jr, mid + 1, r, i << 1 | 1);
//
//    }
//    return ans;
//
//}
//array<int, 4> que(int jl, int jr, int l, int r, int i)
//{
//    if (jl <= l && r <= jr)
//    {
//        return{ sm1[i],mx1[i],pre1[i],suf1[i] };
//    }
//    int mid = (l + r) >> 1;
//    down(i, mid - l + 1, r - mid);
//    //array<int, 4>ans = { 0,-1e18,0,0 };
//    if (jr <= mid)
//    {
//       return que(jl, jr, l, mid, i << 1);
//        
//    }
//    if ( mid + 1<=jl)
//    {
//       return  que(jl, jr, mid + 1, r, i << 1 | 1);
//       
//    }
//    array<int, 4>a = que(jl, jr, l, mid, i<<1);
//    array<int, 4>b = que(jl, jr, mid + 1, r, i<<1|1);
//    int z = 0, zz = 0;
//    if (a[2] == mid - max(jl,l) + 1)z = a[2] + b[2];
//    else z = a[2];
//    if (b[3] == min(jr,r) - mid)zz = b[3] + a[3];
//    else zz = b[3];
//    return{ a[0] + b[0],max({a[1],b[1],a[3] + b[2]}),z,zz };
//    
//}
//void _reverse(int jl, int jr, int l, int r, int i)
//{
//    if (l >= jl && r <= jr)
//    {
//        rlazy(i, r - l + 1);
//    }
//    else
//    {
//        int mid = (l + r) >> 1;
//        down(i, mid - l + 1, r - mid);
//        if (jl <= mid)
//            _reverse(jl, jr, l, mid, i << 1);
//        if (jr >= mid + 1)
//            _reverse(jl, jr, mid + 1, r, i << 1 | 1);
//        up(i,l,r);
//    }
//}void update(int jl, int jr, int jv, int l, int r, int i)   
//{
//    if (l >= jl && r <= jr)
//    {
//       
//        ulazy(i, r - l + 1,jv);
//    }
//    else
//    {
//        int mid = (l + r) >> 1;
//        down(i, mid - l + 1, r - mid);
//        if (jl <= mid)
//            update(jl, jr, jv, l, mid, i << 1);
//        if (jr >= mid + 1)
//            update(jl, jr, jv, mid + 1, r, i << 1 | 1);
//        up(i,l,r);
//    }
//}
//const int NN = 2049;
//int tree1[NN][NN];
//int tree2[NN][NN];
//int tree3[NN][NN];
//int tree4[NN][NN];
//int n, m;
////int lowbit(int i)
////{
////    return(i & -i);
////}
//void add1(int x, int y, int v)
//{
//    int v1 = v;
//    int v2 = v * x;
//    int v3 = v * y;
//    int v4 = x * y * v;
//    for (int i = x; i <= n; i += (lowbit(i)))
//    {
//        for (int j = y; j <= m; j += lowbit(j))
//        {
//            tree1[i][j] += v1;
//            tree2[i][j] += v2;
//            tree3[i][j] += v3;
//            tree4[i][j] += v4;
//        }
//    }
//}
//void add1(int a, int b, int c, int d,int v)
//{
//    add1(a, b, v);
//    add1(c+1, b, -v);
//    add1(a, d+1, -v);
//    add1(c+1, d+1, v);
//}
//int query1(int x, int y)
//{
//    int ans = 0;
//    for (int i = x; i > 0; i -= lowbit(i))
//    {
//        for (int j = y; j > 0; j -= lowbit(j))
//        {
//            ans += ((x+1)*(y+1)*tree1[i][j]);
//            ans -= ((y+1)*tree2[i][j]);
//            ans -= ((x+1)*tree3[i][j]);
//            ans += tree4[i][j];
//        }
//    }
//    return ans;
//}
//int query(int a, int b, int c, int d)
//{
//    return query1(a-1, b-1) + query1(c, d) - query1(a - 1, d) - query1(c, b - 1);
//}
/*   int tree1[114514];
   int tree2[114514];
   int n;
   void add1(int* tree,int i, int v)
   {
       while (i <= n)
       {
           tree[i] += v;
           i += (i & -i);
       }
   }
   void add12(int l, int r, int v)
   {
       add1(tree1,l, v);
       add1(tree1,r+1, -v);
       add1(tree2,l, (l - 1) * v);
       add1(tree2,r+1, -(r * v));
   }
   int query1(int * tree,int i)
   {
       int ans = 0;
       while (i)
       {
           ans += tree[i];
           i -= (i & -i);
       }
       return ans;
   }
   int query(int l,int r)
   {
       return r * query1(tree1, r) - query1(tree2, r) - (l - 1) * query1(tree1, l - 1) + query1(tree2, l - 1);
   }*/
   /* auto adj = [&]() {//set维护中位数板子
       if (ma.size() >= mi.size() + 3)
       {
           auto a = ma.begin();
           suma += *a;
           sumb -= *a;
           mi.insert(*a);
           ma.erase(a);
       }
       if (ma.size() > mi.size())return;
       auto a = --mi.end();
       suma -= *a;
       sumb += *a;
       ma.insert(*a);
       mi.erase(a);
   };*/
   //    int wwr[1001];
   //int find(int x)
   //{
   //    if (x != wwr[x])
   //    {
   //        int w = find(wwr[x]);
   //        wwr[x] = w;
   //        return w;
   //    }
   //    else
   //    {
   //        return x;
   //    }
   //}
   //void wbwb(int a, int b)
   //{
   //    int fa = find(a);
   //    int fb = find(b);
   //    if (fa != fb)
   //    {
   //        wwr[fa] = fb;
   //       // cnt[fb] += cnt[fa];
   //    }
   //}
       //int prime[1000010] = { 0 };//质数
       //int minp[1000010] = { 0 };//最小质因子
       //void olshai(int n)
       //{
       //    int cnt = 0;
       //    for (int i = 2; i <= n; i++)
       //    {
       //        if (minp[i] == 0) { minp[i] = i; prime[++cnt] = i; }
       //        for (int j = 1; j <= cnt; j++) { if (prime[j] > minp[i] || prime[j] > n / i) break; minp[i * prime[j]] = prime[j]; }
       //    }
       //
       //}
     /*  auto dij = [&](int s, int d[], bool vis[]) {
           priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> q;
           for (int i = 0; i <= 1 * n; i++)
               d[i] = 1e18, vis[i] = 0;
           d[s] = 0;
           q.push({ 0,s });
           while (q.size()) {
               auto t = q.top();
               q.pop();
               int u = t.second;
               if (vis[u]) continue;
               vis[u] = true;
               for (auto ed : arr[u]) {
                   int v = ed.first, w = ed.second;
                   if (d[v] > d[u] + w) {
                       d[v] = d[u] + w;
                       q.push({ d[v],v });
                   }
               }
           }
       };*/
   /*    int mergesort(vector<int>& nums, int l, int r)
       {
           long long ret = 0;
           if (l >= r)
               return 0;
           int mid = (l + r) >> 1;
           ret = (ret + mergesort(nums, l, mid)) % mod;
           ret = (ret + mergesort(nums, mid + 1, r)) % mod;
           int cur1 = l, cur2 = mid + 1, i = l;
           while (cur1 <= mid && cur2 <= r)
           {
               if (nums[cur1] <= nums[cur2])
               {
                   tem[i++] = nums[cur1++];
               }
               else {
       
                   ret = ((ret + mid) % mod - cur1 + 1) % mod;
                   tem[i++] = nums[cur2++];
       
               }
           }
           while (cur1 <= mid)tem[i++] = nums[cur1++];
           while (cur2 <= r)tem[i++] = nums[cur2++];
           for (int i = l; i <= r; i++)
               nums[i] = tem[i];
           return ret % mod;
       }*/
       //int InversePairs(vector<int>& nums) {
       //    tem.resize(nums.size());
       //    return mergesort(nums, 0, nums.size() - 1) % mod;
       //}
       //多重背包模板
       // int n, m;
       //int a[101];
       //int b[101];
       //int c[101];
       //int dp[40000 + 1];
       //int que[50000 + 100000 + 1]; cin >> n >> m;
       //for1
       //{
       //    cin >> a[i] >> b[i] >> c[i];
       //}
       //
       //for1
       //{
       //
       //
       //for (int md = 0; md <= min(m , b[i] - 1); md++)
       //{
       //    int l = 0, r = 0;
       //
       //    for (int j = m - md,k = 0; j >= 0 && k <= c[i]; j -= b[i],k++)
       //    {
       //        while (l < r && dp[que[r - 1]] <= dp[j] + a[i] * ((que[r - 1] - j) / b[i]))
       //        {
       //            r--;
       //        }
       //        que[r++] = j;
       //
       //    }
       //    for (int j = m - md; j >= 0; j -= b[i])
       //    {
       //
       //        dp[j] = dp[que[l]] + a[i] * ((j - que[l]) / b[i]);  
       //        if (j == que[l])l++;
       //        int wwr = j - b[i] * (c[i] + 1);
       //        if (wwr >= 0)
       //        { 
       //            while (l < r && dp[que[r - 1]] <= dp[wwr] + a[i] * ((que[r - 1] - wwr) / b[i]))
       //                r--;
       //            que[r++] = wwr;
       //        }
       //    }
       //}
       //
       //}
       //cout << dp[m] << endl;..
       //  vector :c.assign(beg, end)	将另外一个容器[x.begin(), x.end()) 里的内容拷贝到c中
       //vector<int>::iterator it;
       // 相当于声明了一个迭代器类型的变量it
       //less<int> 表示数字大的优先级大,堆顶为最大的数字
       //greater<int>表示数字小的优先级大,堆顶为最小的数字,优先队列比较要写结构体cmp
       //mp.lower_bound()	返回一个迭代器,指向键值 >= key的第一个元素
       //mp.upper_bound()	返回一个迭代器,指向键值 > key的第一个元素             for(auto [x, y] : mp)
       //getline(cin, s)会获取前一个输入的换行符,需要在前面添加读取换行符的语句。如:getchar() 或 cin.get()
       //tolower(s[i])	转换为小写
       //toupper(s[i])	转换为大写
       //transform(s.begin(), s.end(), s.begin(), ::tolower);//转换小写
       //transform(s.begin(), s.end(), s.begin(), ::toupper);//转换大写 find返回-1是找不到
       //bitset<n> a(s)	a是string对象s中含有的位串的副本
       //bitset<n> a(s, pos, n)	a是s中从位置pos开始的n个位的副本 bitset可以进行位操作可以通过 [] 访问元素 
       //b.count()	b中为1的个数
       //fill(a.begin(), a.end(), x)填充
       //tuple获取对应元素的值通过get<n>(tuple)方法获取, n必须为数字不能是变量
       //tie可以让tuple变量中的三个值依次赋到tie中的三个变量中tie(one, two, three) = t;
       //accumulate(beg, end, init)作用:对一个序列的元素求和init为对序列元素求和的初始值返回值类型:与init 相同
       //atoi(const char*)将字符串转换为int类型int a = atoi(s.c_str());
       //is_sorted(beg, end) 判断序列是否有序(升序),返回bool值
       //iota(beg, end,初始值)让序列递增赋值如 把数组赋值为:0 1 2 3 4 5
       //max_element+min_element找最大最小值
       ////找到a,b,c,d的最大值和最小值
       //mx = max({ a, b, c, d });
       //mn = min({ a, b, c, d });
       //nth_element(beg, nth, end)复杂度: 平均O(N)O(N)寻找第序列第n小的值
       //shuffle(b.begin(), b.end()); 随机打乱序列的顺序
       //reverse(beg, end)对序列进行翻转
       //stable_sort区别在于stable_sort()能够保证相等元素的相对位置,排序时不会改变相等元素的相对位置
       //unique(beg, end)消除重复元素,返回消除完重复元素的下一个位置的地址
       // 消除重复元素一般需要原序列是有序序列 unique 之后 a 数组为 { 1, 2, 3, 6, 3 }前面为无重复元素的数组,后面则是重复元素移到后面,返回a[4]
       //int len = unique(b, b + n) - b;//消除 b 的重复元素,并获取长度

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

詳細信息

Test #1:

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

input:

3
2 0
7 11
1145141 998244353

output:

1
2
872

result:

ok 3 lines

Test #2:

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

input:

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

output:

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

result:

ok 47595 lines

Test #3:

score: 0
Accepted
time: 10ms
memory: 3740kb

input:

100000
11 34
71 35
11 45
53 28
3 67
17 38
41 2
23 8
47 26
79 98
89 47
97 33
43 95
97 98
29 79
29 48
67 27
37 3
97 72
71 97
67 53
23 77
71 12
101 92
89 63
61 71
59 94
97 2
29 64
53 74
47 78
67 0
97 66
79 81
3 48
67 87
79 88
59 63
17 25
61 37
67 64
79 93
67 92
89 0
59 88
11 29
29 5
13 47
101 80
3 12
8...

output:

3
1
5
1
23
3
1
0
0
2
1
1
2
2
4
3
1
1
1
2
1
4
0
1
1
3
3
1
3
2
2
0
1
2
16
2
2
2
2
1
1
2
2
0
3
3
1
4
1
4
1
1
14
45
1
1
3
1
4
2
1
2
1
1
2
1
8
2
1
2
1
1
0
1
2
2
1
3
3
9
1
2
1
1
32
1
1
2
1
1
0
1
4
1
1
3
1
2
1
2
2
1
0
2
3
0
1
1
1
3
2
2
1
5
4
1
1
3
2
0
3
2
3
1
6
1
2
9
0
2
2
3
1
1
2
1
2
2
1
1
0
2
2
12
21
4
3...

result:

ok 100000 lines

Test #4:

score: 0
Accepted
time: 10ms
memory: 3804kb

input:

100000
29 83
47 14
29 56
2 29
17 35
67 31
3 24
97 39
17 5
59 16
53 51
29 51
67 72
53 14
79 54
11 35
83 56
89 11
5 70
67 42
89 65
7 40
41 45
79 13
7 26
5 51
5 49
47 46
19 2
89 74
47 27
71 37
37 39
83 86
7 86
71 15
29 94
19 17
101 56
23 3
59 95
97 73
11 15
29 66
23 23
23 51
53 95
11 95
61 0
97 14
73 5...

output:

4
0
3
15
2
1
8
1
1
1
1
3
2
1
1
3
1
1
15
1
1
6
2
0
4
10
10
1
0
1
0
1
2
2
13
1
4
1
1
0
3
1
2
3
2
2
3
9
0
1
1
2
4
0
1
1
2
1
11
2
1
2
3
1
1
1
3
3
1
1
2
1
1
1
1
1
5
8
1
4
9
0
3
1
14
2
1
2
2
1
6
3
1
5
1
1
3
1
2
10
1
2
4
2
1
1
1
1
1
1
4
3
1
5
1
1
2
1
1
1
2
1
6
2
1
0
7
0
1
2
2
4
2
1
1
2
3
1
3
1
1
1
3
1
6
3
...

result:

ok 100000 lines

Test #5:

score: 0
Accepted
time: 11ms
memory: 3744kb

input:

100000
59 60
97 9
53 69
7 58
71 67
3 88
61 92
83 42
67 64
71 43
29 30
83 31
89 89
47 93
67 90
97 74
11 80
89 84
47 38
19 43
67 55
59 15
101 68
71 58
97 40
73 94
71 88
89 8
67 35
37 81
31 24
23 58
73 51
43 34
71 88
41 69
37 37
7 2
79 79
97 65
17 89
41 78
31 3
97 37
7 91
47 95
97 33
97 60
37 74
29 83
...

output:

2
1
2
8
1
29
3
1
1
1
2
1
2
2
2
1
8
1
1
3
1
1
1
1
1
2
2
1
1
2
0
3
1
1
2
2
2
0
2
1
6
2
0
1
14
2
1
1
2
4
5
0
5
1
2
1
1
1
0
1
1
0
7
17
2
7
3
1
0
0
1
1
8
3
1
2
1
1
1
1
0
1
1
7
4
2
7
5
0
1
21
3
1
1
0
3
0
0
2
1
1
1
2
5
6
4
1
2
1
1
2
1
4
1
1
2
21
0
3
1
5
1
20
1
2
1
3
5
0
0
6
3
1
2
5
0
1
3
8
2
1
3
1
1
3
1
1
...

result:

ok 100000 lines

Test #6:

score: 0
Accepted
time: 8ms
memory: 3864kb

input:

100000
1861 3528
2333 9090
2579 5653
8147 4315
1381 1926
1213 8598
7681 7742
5039 8270
7927 3661
2819 9458
7229 4213
683 8300
787 4660
7753 1678
7283 9943
6029 2737
5051 6439
9371 9827
1277 5268
2753 5913
5437 1537
2851 4021
1289 1807
6529 7605
7949 9316
8101 2770
6451 2437
2039 1348
1307 6586
9011 ...

output:

3
4
3
1
2
8
2
2
1
3
1
13
7
1
3
1
2
2
4
2
1
2
2
2
3
1
1
1
5
1
2
1
1
1
1
14
6
4
1
1
1
2
1
1
2
23
1
32
1
2
7
4
1
2
3
1
2
2
4
1
9
1
4
3
4
1
5
3
2
2
4
123
1
2
9
1
1
3
1
1
2
1
3
1
1
4
3
1
1
1
1
1
1
1
1
3
1
1
4
4
1
3
1
18
1
11
1
2
2
1
3
1
1
0
329
1
1
2
3
1
2
1
1
4
1
1
2
4
5
1
3
1
7
2
1
1
2
1
2
2
2
1
1
1
2
...

result:

ok 100000 lines

Test #7:

score: 0
Accepted
time: 12ms
memory: 3652kb

input:

100000
2861 7238
2411 6690
1951 8793
7877 4503
7237 6677
8311 2550
9883 8304
233 2207
9397 6356
907 7980
7591 192
7643 9101
8963 3945
5683 436
6007 4005
3299 123
1103 5136
9719 9329
2099 1890
7793 6195
2203 8339
4057 9237
5521 3288
6733 7011
563 5121
2879 8277
9091 124
1913 229
307 7781
1801 7702
67...

output:

2
3
6
1
1
1
1
9
1
9
1
2
1
1
1
1
5
1
1
1
4
4
1
2
10
3
1
1
27
5
1
5
1
2
3
2
1
1
22
2
2
1
1
2
1
1
1
1
1
2
1
1
1
4
1
1
18
1
4
11
42
1
3
2
1
2
2
2
1
1
6
1
2
1
1
3
1
1
13
35
1
1
1
1
1
1
3
2
1
1
1
1
7
1
1
1
5
1
1
2
3
1
1
1
1
2
1
1
5
1
4
6
2
1
51
1
1
8
4
3
13
31
5
2
1
50
1
2
1
1
3
19
1
1
2
13
3
1
1
3
1
2
1
...

result:

ok 100000 lines

Test #8:

score: 0
Accepted
time: 12ms
memory: 3864kb

input:

100000
7177 7208
2753 1599
2909 8176
6547 7781
2543 4318
7177 3366
127 1355
7283 479
6073 6686
3847 195
6761 3446
2099 2392
2609 4676
3637 3268
8849 7603
5179 7731
827 7446
3163 299
9461 8223
6581 8750
4373 9228
9187 8667
2963 6819
4057 7322
5059 9167
9041 3320
9151 8842
2153 6137
1993 6329
4517 606...

output:

2
1
3
2
2
1
12
1
2
1
1
2
2
1
1
2
9
1
1
2
3
1
2
3
2
1
1
3
4
2
2
1
2
1
2
16
1
5
1
1
40
1
1
1
1
30
1
3
2
1
3
3
2
2
4
10
2
9
1
2
1
1
2
1
3
1
1
1
6
2
1
1
2
4
3
1
1
2
1
1
2
2
1
1
2
2
3
1
1
1
1
6
1
2
3
1
6
1
1
2
1
1
1
1
5
2
1
2
2
5
1
3
1
2
2
1
3
47
7
4
1
1
2
1
3
1
1
3
2
2
7
18
1
1
1
1
1
2
5
3
2
1
1
1
1
3
1...

result:

ok 100000 lines

Test #9:

score: 0
Accepted
time: 16ms
memory: 3744kb

input:

100000
22957699 627925429
433183259 202804355
816810829 985631258
54563549 847625650
712837669 860468289
452708161 516705387
541041323 722654987
456499961 122097506
110566411 638241209
103870223 415782860
591063689 459421060
851704643 560244670
491675827 960606500
724808879 813870033
513057607 82205...

output:

27
1
2
15
2
2
2
1
6
5
1
1
3
2
3
4
1
4
1
1
1
1
14
2
1
4
1
1
1
1
1
1
1
1
1
2
2
1
3
1
31
1
1
11
10
1
2
1
1
1
1
1
1
1
2
3
1
1
1
3
2
2
1
3
7
3
1
5
4
2
1
1
2
3
2
1
1
6
2
3
2
1
3
4
2
1
2
3
1
1
2
1
20
1
1
10
9
12
1
1
1
1
1
2
1
1
1
3
2
98
2
1
1
3
1
1
2
7
2
1
1
1
6
1
2
1
1
4
2
1
1
2
1
6
1
1
3
3
2
3
2
1
2
1
1
...

result:

ok 100000 lines

Test #10:

score: 0
Accepted
time: 16ms
memory: 3700kb

input:

100000
821384891 360483232
94753013 575184250
387876647 758829597
792132637 476022188
535607833 726268124
410858009 781602681
205636231 376470383
645933731 695016569
300304427 613786984
973582219 833018963
29026219 535160021
635806387 1063241
345979391 601446921
785258833 658427991
90922421 44784451...

output:

1
7
2
1
3
3
3
2
3
1
19
1
2
1
5
3
1
1
7
1
2
1
1
10
1
2
2
2
2
1
15
5
1
1
2
1
1
14
1
2
2
1
1
6
1
10
1
3
1
2
1
4
9
1
4
1
1
3
1
582
1
1
1
3
1
5
1
2
2
6
3
2
1
2
1
3
1
1
6
8
1
1
1
3
1
2
1
1
1
1
8
4
2
1
1
1
2
1
1
5
1
1
3
2
1
2
1
2
3
2
1
5
1
1
1
1
1
1
3
1
1
1
2
5
1
1
2
3
1
1
2
1
3
1
1
1
5
1
2
2
1
1
12
1
2
4
...

result:

ok 100000 lines

Test #11:

score: 0
Accepted
time: 16ms
memory: 3632kb

input:

100000
461078399 442550442
375521033 166102087
604976747 331845816
889534567 570960171
535876871 139282340
31131031 344924738
847344217 802184255
28753481 655216151
866254967 928501728
688120403 888670298
877525879 756867078
356855867 761054248
447231371 477259710
294217477 234719004
964538831 66564...

output:

1
1
1
1
1
11
1
24
2
2
1
3
2
1
1
1
3
7
1
2
1
1
1
1
1
2
3
8
1
1
1
2
2
2
1
1
1
2
4
1
1
1
2
3
9
1
1
1
3
1
5
1
2
4
2
4
1
2
2
2
1
5
1
3
2
4
3
1
1
4
1
1
7
1
1
1
2
1
1
1
1
8
1
3
1
1
2
2
1
3
1
2
1
1
85
1
1
1
2
6
9
3
1
1
2
1
1
1
2
2
4
3
2
2
10
1
1
1
1
3
1
16
12
12
1
2
1
1
6
2
2
6
3
1
1
1
1
2
2
2
1
1
2
1
1
1
2...

result:

ok 100000 lines

Test #12:

score: 0
Accepted
time: 19ms
memory: 3744kb

input:

100000
854620121447 305351081320
465821420627 871311229833
798238974037 704593959229
82347058499 514594072052
78827529281 752873405762
666400710491 526552474252
437289823799 509968252445
301446931481 962983709877
33747912293 818002585949
538211581429 511798563550
750166805383 54533573983
17865394271...

output:

1
3
1
7
10
1
2
4
25
1
1
1
2
2
1
1
1
17
3
2
2
5
3
3
1
5
1
1
7
3
7
3
1
2
1
4
3
2
1
19
3
3
2
1
2
6
7
2
1
2
1
1
1
1
1
1
1
3
2
1
5
1
1
2
2
2
18
1
1
5
1
8
4
1
7
1
2
1
2
17
1
9
2
1
3
2
1
1
4
2
1
2
2
1
3
1
1
1
1
4
1
2
1
10
1
2
1
2
1
4
2
5
1
2
1
1
1
2
1
1
4
27
2
1
2
1
1
27
2
5
2
1
40
1
7
2
1
3
3
3
2
3
1
1
1
...

result:

ok 100000 lines

Test #13:

score: 0
Accepted
time: 18ms
memory: 3700kb

input:

100000
653643377183 209815203180
360818541247 201512061317
10499747803 884463867404
393797197091 234742176386
703806710617 249134196381
907111880249 117784843971
7251683917 175985067098
942415308949 620757896798
100232848427 681361142924
910954687609 667339222842
458654023019 976379522216
7578431335...

output:

1
1
85
1
1
1
24
1
7
1
3
2
1
3
2
1
1
1
1
3
3
2
2
1
1
2
2
20
2
1
1
2
1
8
2
1
5
1
6
2
5
1
1
1
1
3
2
2
1
2
1
3
2
11
9
1
1
1
5
3
2
2
8
9
1
4
1
1
1
1
2
3
28
1
1
1
1
1
1
3
2
1
1
1
2
1
6
1
1
7
6
3
2
2
1
1
3
1
1
4
2
2
1
1
2
7
1
1
2
1
3
2
2
2
2
1
2
1
1
23
2
2
2
2
1
1
15
1
1
1
1
3
2
1
11
1
1
2
1
5
3
3
1
2
7
2
...

result:

ok 100000 lines

Test #14:

score: 0
Accepted
time: 18ms
memory: 3652kb

input:

100000
160125432991 475051983094
819602886679 897389271502
678683084113 569622411514
693327957977 644715715338
934013525429 656254498442
882423180421 325527047003
372238916617 592630991201
103117005307 188247573815
365204005631 992392281776
200101992971 774412000171
535601515147 197520852483
5536176...

output:

3
2
1
1
1
1
2
3
3
5
1
2
1
1
1
1
1
8
1
1
1
2
1
1
2
1
5
2
1
1
3
1
2
7
1
9
1
3
3
2
2
12
2
1
1
4
2
1
1
1
1
1
1
15
3
1
2
12
1
1
1
1
10
2
2
2
1
2
1
2
1
1
1
2
2
2
1
2
2
1
1
4
3
1
1
1
3
2
1
1
1
1
3
1
2
2
2
1
7
4
1
1
11
1
1
1
2
2
1
2
1
1
1
1
6
4
2
1
1
3
1
1
1
27
2
1
3
1
2
3
5
1
1
1
4
1
15
3
1
17
1
1
1
2
1
1
...

result:

ok 100000 lines

Test #15:

score: 0
Accepted
time: 20ms
memory: 3704kb

input:

100000
359573421097243 33190899500761
429648865238321 111363421683870
423566282667481 76657156109745
944266025027653 53041192687688
5998863263257 461695895601001
971991064370477 903661079717039
342748954516301 175753203478899
969093155697031 62220628919394
249136757321579 631609060170143
43919020024...

output:

1
1
1
1
78
1
1
1
3
1
1
2
1
1
1
1
1
3
78
2
59
1
1
1
1
1
2
8
1
1
1
1
8
2
4
1
2
1
1
1
1
1
5
13
4
2
2
9
1
1
1
1
1
1
2
1
1
3
4
2
2
2
1
1
1
2
3
26
1
40
1
1
7
1
6
2
1
6
2
1
8
1
2
1
27
1
2
2
1
2
1
1
2
2
1
3
1
1
1
1
3
1
1
3
6
4
1
3
1
2
6
7
4
1
1
2
1
1
1
3
1
2
2
1
3
1
9
8
4
1
4
6
1
3
1
5
9
1
3
1
2
32
1
1
2
1
...

result:

ok 100000 lines

Test #16:

score: 0
Accepted
time: 21ms
memory: 3656kb

input:

100000
612187772343991 307898682692355
491563915829227 81876689946461
903496097449081 724223585724217
76596192680681 445610736133832
925209166638019 109668900359025
814982598334559 890952377847942
420890856837109 909991705384765
837583370312123 640461094892448
128215851458909 989991000111952
2749157...

output:

1
1
1
6
1
2
2
1
8
3
1
1
1
2
1
2
1
2
2
3
1
1
2
1
1
1
1
3
1
1
3
3
37
1
5
1
1
2
3
2
1
2
4
1
1
1
6
1
1
1
2
3
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
4
2
1
2
1
2
4
3
4
3
4
2
1
1
1
1
2
2
1
2
4
3
2
8
15
5
4
3
1
9
2
11
1
1
4
1
1
23
2
1
1
1
3
2
1
2
3
11
1
2
2
3
1
3
2
3
1
3
3
1
1
1
1
1
1
1
1
2
2
1
3
1
1
3
10
...

result:

ok 100000 lines

Test #17:

score: 0
Accepted
time: 20ms
memory: 3788kb

input:

100000
527124440985647 595225963083624
878596655176477 267226061229273
511171190874121 539928663112537
708545136837443 572815828041949
508401279002521 728325253245656
958545656352461 208380424460329
630023561631221 900531251759032
856499920764841 620217829008445
664762951245641 992776043426244
88970...

output:

2
1
2
1
3
1
2
1
2
2
1
1
6
5
3
2
7
3
2
12
1
11
17
2
1
4
3
1
1
2
1
1
2
1
2
1
2
2
11
11
5
1
1
1
1
3
1
5
2
2
1
1
1
1
3
8
3
1
1
1
1
1
1
1
1
3
9
1
2
1
24
1
2
3
1
2
3
1
5
1
5
3
2
1
2
1
1
5
2
1
1
2
1
1
2
1
1
2
1
1
1
21
103
1
7
1
3
4
1
2
1
6
2
5
1
8
2
1
1
1
5
1
2
1
2
2
10
2
2
6
1
3
2
2
2
4
1
12
1
8
3
1
4
2
1...

result:

ok 100000 lines

Test #18:

score: 0
Accepted
time: 23ms
memory: 3652kb

input:

100000
137194177351851223 9263960501321274
603695491118374607 404857914356622914
905092930616434199 438619277423348461
225047845117473823 419275192757332987
46077386124583379 58196483892837680
932311941721013233 86830145501282437
428893034875113157 259980893024457722
422564472614618221 4922670871717...

output:

1
1
1
3
2
1
1
2
2
1
1
1
41
1
3
1
1
2
1
2
1
4
8
1
1
5
1
1
1
1
1
2
2
6
1
1
1
2
4
8
3
1
2
1
1
3
1
3
2
1
1
1
2
1
2
1
12
4
4
4
7
1
1
1
1
2
1
2
3
1
5
2
1
1
1
15
2
1
10
1
1
2
1
11
1
2
2
1
1
1
1
4
3
4
1
1
1
4
1
1
2
1
1
10
1
1
2
1
1
2
1
2
3
3
6
1
1
2
1
1
2
1
1
2
2
9
2
1
1
2
2
1
2
3
3
1
1
8
2
1
3
1
6
1
2
1
1
...

result:

ok 100000 lines

Test #19:

score: 0
Accepted
time: 24ms
memory: 3712kb

input:

100000
372459024313481957 706690631540644317
672619818396391 605929237970266041
734983024134395923 404465032880967062
123776024960508211 704655167670475038
694637366930170487 911014424969381821
257826433671775237 32194576516953788
570154615804186159 25699638879637358
86963512790531387 93830733506415...

output:

2
901
1
6
2
1
1
2
1
1
5
1
1
1
1
1
2
2
1
2
1
1
3
3
1
1
3
1
1
18
1
1
5
2
2
1
17
1
1
5
1
2
11
2
5
2
2
1
2
3
10
2
4
1
1
1
1
3
1
2
5
7
4
1
2
1
5
1
6
1
2
3
1
1
1
3
1
2
3
3
4
1
1
1
1
1
4
5
8
3
2
2
3
1
2
7
1
2
2
2
2
2
1
1
2
1
2
13
1
26
1
1
1
1
44
5
4
2
1
4
1
1
2
4
1
1
1
1
1
1
1
1
1
3
1
7
1
2
3
2
2
9
1
5
1
1...

result:

ok 100000 lines

Test #20:

score: 0
Accepted
time: 23ms
memory: 3700kb

input:

100000
966374481426333653 927674754000046276
547619405950404283 459594617974285439
73136580880950767 785269891461922620
297236243166644039 754400221344316960
281874052063114529 682203169755139173
211070435933793739 534953075257260374
186603053201695927 585053341246251851
19587519457672171 4373347880...

output:

1
1
11
3
4
3
4
24
2
6
2
2
2
1
1
7
1
1
3
1
1
2
2
1
3
3
3
2
10
2
3
3
1
4
1
3
2
1
1
1
2
2
3
4
1
2
2
3
1
1
1
3
1
2
7
2
2
1
5
1
1
2
1
2
2
3
1
6
2
2
1
16
2
1
2
4
1
3
2
1
5
5
2
1
1
1
1
3
2
10
1
1
1
5
2
4
1
26
1
1
2
5
6
4
1
4
1
1
1
1
3
1
2
1
1
3
1
2
4
1
1
2
3
1
1
1
1
2
2
2
2
2
1
1
2
1
1
3
1
4
1
1
3
1
1
2
4
...

result:

ok 100000 lines

Extra Test:

score: 0
Extra Test Passed