QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#513885#9173. Touching Grassucup-team004#AC ✓1119ms27196kbC++2013.7kb2024-08-10 20:23:382024-08-10 20:23:38

Judging History

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

  • [2024-08-10 20:23:38]
  • 评测
  • 测评结果:AC
  • 用时:1119ms
  • 内存:27196kb
  • [2024-08-10 20:23:38]
  • 提交

answer

#include <bits/stdc++.h>

using u32 = unsigned;
using i64 = long long;
using u64 = unsigned long long;
template<class T>
struct Point {
    T x;
    T y;
    Point(const T &x_ = 0, const T &y_ = 0) : x(x_), y(y_) {}
    
    template<class U>
    operator Point<U>() {
        return Point<U>(U(x), U(y));
    }
    Point &operator+=(const Point &p) & {
        x += p.x;
        y += p.y;
        return *this;
    }
    Point &operator-=(const Point &p) & {
        x -= p.x;
        y -= p.y;
        return *this;
    }
    Point &operator*=(const T &v) & {
        x *= v;
        y *= v;
        return *this;
    }
    Point &operator/=(const T &v) & {
        x /= v;
        y /= v;
        return *this;
    }
    Point operator-() const {
        return Point(-x, -y);
    }
    friend Point operator+(Point a, const Point &b) {
        return a += b;
    }
    friend Point operator-(Point a, const Point &b) {
        return a -= b;
    }
    friend Point operator*(Point a, const T &b) {
        return a *= b;
    }
    friend Point operator/(Point a, const T &b) {
        return a /= b;
    }
    friend Point operator*(const T &a, Point b) {
        return b *= a;
    }
    friend bool operator==(const Point &a, const Point &b) {
        return a.x == b.x && a.y == b.y;
    }
    friend std::istream &operator>>(std::istream &is, Point &p) {
        return is >> p.x >> p.y;
    }
    friend std::ostream &operator<<(std::ostream &os, const Point &p) {
        return os << "(" << p.x << ", " << p.y << ")";
    }
};

template<class T>
struct Line {
    Point<T> a;
    Point<T> b;
    Line(const Point<T> &a_ = Point<T>(), const Point<T> &b_ = Point<T>()) : a(a_), b(b_) {}
};

template<class T>
T dot(const Point<T> &a, const Point<T> &b) {
    return a.x * b.x + a.y * b.y;
}

template<class T>
T cross(const Point<T> &a, const Point<T> &b) {
    return a.x * b.y - a.y * b.x;
}

template<class T>
T square(const Point<T> &p) {
    return dot(p, p);
}

template<class T>
double length(const Point<T> &p) {
    return std::sqrt(square(p));
}

template<class T>
double length(const Line<T> &l) {
    return length(l.a - l.b);
}

template<class T>
Point<T> normalize(const Point<T> &p) {
    return p / length(p);
}

template<class T>
bool parallel(const Line<T> &l1, const Line<T> &l2) {
    return cross(l1.b - l1.a, l2.b - l2.a) == 0;
}

template<class T>
double distance(const Point<T> &a, const Point<T> &b) {
    return length(a - b);
}

template<class T>
double distancePL(const Point<T> &p, const Line<T> &l) {
    return std::abs(cross(l.a - l.b, l.a - p)) / length(l);
}

template<class T>
double distancePS(const Point<T> &p, const Line<T> &l) {
    if (dot(p - l.a, l.b - l.a) < 0) {
        return distance(p, l.a);
    }
    if (dot(p - l.b, l.a - l.b) < 0) {
        return distance(p, l.b);
    }
    return distancePL(p, l);
}

template<class T>
Point<T> rotate(const Point<T> &a) {
    return Point(-a.y, a.x);
}

template<class T>
int sgn(const Point<T> &a) {
    return a.y > 0 || (a.y == 0 && a.x > 0) ? 1 : -1;
}

template<class T>
bool pointOnLineLeft(const Point<T> &p, const Line<T> &l) {
    return cross(l.b - l.a, p - l.a) > 0;
}

template<class T>
Point<T> lineIntersection(const Line<T> &l1, const Line<T> &l2) {
    return l1.a + (l1.b - l1.a) * (cross(l2.b - l2.a, l1.a - l2.a) / cross(l2.b - l2.a, l1.a - l1.b));
}

template<class T>
bool pointOnSegment(const Point<T> &p, const Line<T> &l) {
    return cross(p - l.a, l.b - l.a) == 0 && std::min(l.a.x, l.b.x) <= p.x && p.x <= std::max(l.a.x, l.b.x)
        && std::min(l.a.y, l.b.y) <= p.y && p.y <= std::max(l.a.y, l.b.y);
}

template<class T>
bool pointInPolygon(const Point<T> &a, const std::vector<Point<T>> &p) {
    int n = p.size();
    for (int i = 0; i < n; i++) {
        if (pointOnSegment(a, Line(p[i], p[(i + 1) % n]))) {
            return true;
        }
    }
    
    int t = 0;
    for (int i = 0; i < n; i++) {
        auto u = p[i];
        auto v = p[(i + 1) % n];
        if (u.x < a.x && v.x >= a.x && pointOnLineLeft(a, Line(v, u))) {
            t ^= 1;
        }
        if (u.x >= a.x && v.x < a.x && pointOnLineLeft(a, Line(u, v))) {
            t ^= 1;
        }
    }
    
    return t == 1;
}

// 0 : not intersect
// 1 : strictly intersect
// 2 : overlap
// 3 : intersect at endpoint
template<class T>
std::tuple<int, Point<T>, Point<T>> segmentIntersection(const Line<T> &l1, const Line<T> &l2) {
    if (std::max(l1.a.x, l1.b.x) < std::min(l2.a.x, l2.b.x)) {
        return {0, Point<T>(), Point<T>()};
    }
    if (std::min(l1.a.x, l1.b.x) > std::max(l2.a.x, l2.b.x)) {
        return {0, Point<T>(), Point<T>()};
    }
    if (std::max(l1.a.y, l1.b.y) < std::min(l2.a.y, l2.b.y)) {
        return {0, Point<T>(), Point<T>()};
    }
    if (std::min(l1.a.y, l1.b.y) > std::max(l2.a.y, l2.b.y)) {
        return {0, Point<T>(), Point<T>()};
    }
    if (cross(l1.b - l1.a, l2.b - l2.a) == 0) {
        if (cross(l1.b - l1.a, l2.a - l1.a) != 0) {
            return {0, Point<T>(), Point<T>()};
        } else {
            auto maxx1 = std::max(l1.a.x, l1.b.x);
            auto minx1 = std::min(l1.a.x, l1.b.x);
            auto maxy1 = std::max(l1.a.y, l1.b.y);
            auto miny1 = std::min(l1.a.y, l1.b.y);
            auto maxx2 = std::max(l2.a.x, l2.b.x);
            auto minx2 = std::min(l2.a.x, l2.b.x);
            auto maxy2 = std::max(l2.a.y, l2.b.y);
            auto miny2 = std::min(l2.a.y, l2.b.y);
            Point<T> p1(std::max(minx1, minx2), std::max(miny1, miny2));
            Point<T> p2(std::min(maxx1, maxx2), std::min(maxy1, maxy2));
            if (!pointOnSegment(p1, l1)) {
                std::swap(p1.y, p2.y);
            }
            if (p1 == p2) {
                return {3, p1, p2};
            } else {
                return {2, p1, p2};
            }
        }
    }
    auto cp1 = cross(l2.a - l1.a, l2.b - l1.a);
    auto cp2 = cross(l2.a - l1.b, l2.b - l1.b);
    auto cp3 = cross(l1.a - l2.a, l1.b - l2.a);
    auto cp4 = cross(l1.a - l2.b, l1.b - l2.b);
    
    if ((cp1 > 0 && cp2 > 0) || (cp1 < 0 && cp2 < 0) || (cp3 > 0 && cp4 > 0) || (cp3 < 0 && cp4 < 0)) {
        return {0, Point<T>(), Point<T>()};
    }
    
    Point p = lineIntersection(l1, l2);
    if (cp1 != 0 && cp2 != 0 && cp3 != 0 && cp4 != 0) {
        return {1, p, p};
    } else {
        return {3, p, p};
    }
}

template<class T>
double distanceSS(const Line<T> &l1, const Line<T> &l2) {
    if (std::get<0>(segmentIntersection(l1, l2)) != 0) {
        return 0.0;
    }
    return std::min({distancePS(l1.a, l2), distancePS(l1.b, l2), distancePS(l2.a, l1), distancePS(l2.b, l1)});
}

template<class T>
bool segmentInPolygon(const Line<T> &l, const std::vector<Point<T>> &p) {
    int n = p.size();
    if (!pointInPolygon(l.a, p)) {
        return false;
    }
    if (!pointInPolygon(l.b, p)) {
        return false;
    }
    for (int i = 0; i < n; i++) {
        auto u = p[i];
        auto v = p[(i + 1) % n];
        auto w = p[(i + 2) % n];
        auto [t, p1, p2] = segmentIntersection(l, Line(u, v));
        
        if (t == 1) {
            return false;
        }
        if (t == 0) {
            continue;
        }
        if (t == 2) {
            if (pointOnSegment(v, l) && v != l.a && v != l.b) {
                if (cross(v - u, w - v) > 0) {
                    return false;
                }
            }
        } else {
            if (p1 != u && p1 != v) {
                if (pointOnLineLeft(l.a, Line(v, u))
                    || pointOnLineLeft(l.b, Line(v, u))) {
                    return false;
                }
            } else if (p1 == v) {
                if (l.a == v) {
                    if (pointOnLineLeft(u, l)) {
                        if (pointOnLineLeft(w, l)
                            && pointOnLineLeft(w, Line(u, v))) {
                            return false;
                        }
                    } else {
                        if (pointOnLineLeft(w, l)
                            || pointOnLineLeft(w, Line(u, v))) {
                            return false;
                        }
                    }
                } else if (l.b == v) {
                    if (pointOnLineLeft(u, Line(l.b, l.a))) {
                        if (pointOnLineLeft(w, Line(l.b, l.a))
                            && pointOnLineLeft(w, Line(u, v))) {
                            return false;
                        }
                    } else {
                        if (pointOnLineLeft(w, Line(l.b, l.a))
                            || pointOnLineLeft(w, Line(u, v))) {
                            return false;
                        }
                    }
                } else {
                    if (pointOnLineLeft(u, l)) {
                        if (pointOnLineLeft(w, Line(l.b, l.a))
                            || pointOnLineLeft(w, Line(u, v))) {
                            return false;
                        }
                    } else {
                        if (pointOnLineLeft(w, l)
                            || pointOnLineLeft(w, Line(u, v))) {
                            return false;
                        }
                    }
                }
            }
        }
    }
    return true;
}

template<class T>
std::vector<Point<T>> hp(std::vector<Line<T>> lines) {
    std::sort(lines.begin(), lines.end(), [&](auto l1, auto l2) {
        auto d1 = l1.b - l1.a;
        auto d2 = l2.b - l2.a;
        
        if (sgn(d1) != sgn(d2)) {
            return sgn(d1) == 1;
        }
        
        return cross(d1, d2) > 0;
    });
    
    std::deque<Line<T>> ls;
    std::deque<Point<T>> ps;
    for (auto l : lines) {
        if (ls.empty()) {
            ls.push_back(l);
            continue;
        }
        
        while (!ps.empty() && !pointOnLineLeft(ps.back(), l)) {
            ps.pop_back();
            ls.pop_back();
        }
        
        while (!ps.empty() && !pointOnLineLeft(ps[0], l)) {
            ps.pop_front();
            ls.pop_front();
        }
        
        if (cross(l.b - l.a, ls.back().b - ls.back().a) == 0) {
            if (dot(l.b - l.a, ls.back().b - ls.back().a) > 0) {
                
                if (!pointOnLineLeft(ls.back().a, l)) {
                    assert(ls.size() == 1);
                    ls[0] = l;
                }
                continue;
            }
            return {};
        }
        
        ps.push_back(lineIntersection(ls.back(), l));
        ls.push_back(l);
    }
    
    while (!ps.empty() && !pointOnLineLeft(ps.back(), ls[0])) {
        ps.pop_back();
        ls.pop_back();
    }
    if (ls.size() <= 2) {
        return {};
    }
    ps.push_back(lineIntersection(ls[0], ls.back()));
    
    return std::vector(ps.begin(), ps.end());
}

using P = Point<int>;

i64 cross(P a, P b) {
    return i64 {a.x} * b.y - i64 {a.y} * b.x;
}

int main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);
    
    int n;
    std::cin >> n;
    
    std::vector<P> a(n);
    for (int i = 0; i < n; i++) {
        std::cin >> a[i].x >> a[i].y;
    }
    
    std::vector<int> ord(n);
    std::iota(ord.begin(), ord.end(), 0);
    std::sort(ord.begin(), ord.end(),
        [&](int i, int j) {
            return a[i].x < a[j].x;
        });
    
    int m;
    std::cin >> m;
    
    std::vector<P> pl(m), pr(m);
    std::vector<int> ql(m), qr(m);
    for (int i = 0; i < m; i++) {
        std::cin >> pl[i].x >> pl[i].y >> pr[i].x >> pr[i].y;
        if (pl[i].x > pr[i].x) {
            std::swap(pl[i], pr[i]);
        }
        ql[i] = std::partition_point(ord.begin(), ord.end(),
            [&](int j) {
                return a[j].x < pl[i].x;
            }) - ord.begin();
        qr[i] = std::partition_point(ord.begin(), ord.end(),
            [&](int j) {
                return a[j].x <= pr[i].x;
            }) - ord.begin();
    }
    
    std::vector<int> ans(m, -1);
    
    std::vector<int> hull(n);
    std::vector<int> end(n);
    for (int k = 1; k <= n; k *= 2) {
        for (int i = 0; i + k <= n; i += k) {
            int j = i;
            for (int l = 0; l < k; l++) {
                int id = ord[i + l];
                while (j - i > 1 && cross(a[hull[j - 1]] - a[hull[j - 2]], a[id] - a[hull[j - 1]]) >= 0) {
                    j--;
                }
                hull[j++] = id;
            }
            end[i] = j;
        }
        for (int i = 0; i < m; i++) {
            for (auto j : {(ql[i] + k - 1) / k * k, qr[i] / k * k - k}) {
                if (j >= ql[i] && j + k <= qr[i]) {
                    if (pl[i].x == pr[i].x) {
                        assert(qr[i] == ql[i] + 1);
                        if (a[ord[j]].y >= std::min(pl[i].y, pr[i].y)) {
                            ans[i] = ord[j] + 1;
                        }
                        continue;
                    }
                    int lo = j, hi = end[j] - 1;
                    while (lo < hi) {
                        int t = (lo + hi) / 2;
                        if (cross(pr[i] - pl[i], a[hull[t + 1]] - a[hull[t]]) >= 0) {
                            lo = t + 1;
                        } else {
                            hi = t;
                        }
                    }
                    int t = lo;
                    if (cross(pr[i] - pl[i], a[hull[t]] - pl[i]) >= 0) {
                        ans[i] = hull[t] + 1;
                    }
                }
            }
        }
    }
    
    for (int i = 0; i < m; i++) {
        std::cout << ans[i] << "\n";
    }
    
    return 0;
}

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

详细

Test #1:

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

input:

3
2 3
6 4
4 5
3
1 4 7 6
7 4 1 2
1 6 1 6

output:

3
3
-1

result:

ok 3 queries

Test #2:

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

input:

1
7 10
1
5 3 9 7

output:

1

result:

ok 1 queries

Test #3:

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

input:

2
33 7
86 14
2
72 74 56 83
70 95 100 66

output:

-1
-1

result:

ok 2 queries

Test #4:

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

input:

3
590 27
77 202
795 527
3
76 639 304 621
275 361 860 959
788 734 405 422

output:

-1
-1
-1

result:

ok 3 queries

Test #5:

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

input:

5
258 931
102 85
383 957
124 128
796 906
5
329 73 759 927
480 626 118 591
440 370 595 676
407 887 608 182
399 850 65 102

output:

3
3
-1
-1
1

result:

ok 5 queries

Test #6:

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

input:

8
515 549
180 48
6 444
280 37
860 488
17 622
457 161
915 348
8
424 777 116 971
323 964 277 458
4 482 804 312
770 206 244 512
971 178 688 265
531 426 320 591
736 230 865 762
552 762 454 129

output:

-1
-1
6
1
5
1
-1
1

result:

ok 8 queries

Test #7:

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

input:

13
335 343
437 210
961 689
756 260
716 897
899 129
424 638
179 109
742 319
135 378
561 658
205 18
598 724
13
911 515 141 839
78 158 981 973
571 643 962 720
112 604 755 516
80 339 410 773
192 638 458 45
347 818 629 857
44 606 76 950
269 990 644 872
556 97 298 783
44 619 752 978
119 74 28 214
902 226 ...

output:

5
10
5
13
-1
7
-1
-1
-1
7
-1
-1
13

result:

ok 13 queries

Test #8:

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

input:

10
92 583
165 167
58 286
62 426
156 591
673 825
640 518
254 791
102 651
197 154
10
798 988 642 805
637 34 533 820
926 453 952 99
289 626 798 261
489 612 719 420
441 522 975 262
845 782 988 920
229 807 454 810
270 720 967 281
945 187 250 604

output:

-1
-1
-1
6
6
6
-1
-1
6
6

result:

ok 10 queries

Test #9:

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

input:

10
580 141
638 496
866 385
438 257
759 113
479 705
963 957
812 555
616 986
548 992
10
612 256 901 196
809 867 277 212
995 108 957 8
292 194 922 835
934 864 838 966
972 483 649 763
568 762 19 827
712 894 961 920
514 519 734 947
276 698 492 827

output:

9
10
7
10
-1
7
10
-1
9
-1

result:

ok 10 queries

Test #10:

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

input:

10
411 160
78 181
160 292
586 903
76 152
337 349
603 339
245 326
734 532
812 18
10
735 47 816 111
799 113 664 236
490 291 28 392
419 672 795 228
473 66 583 800
520 12 157 224
59 18 617 507
690 383 744 83
22 306 545 123
819 137 22 23

output:

-1
9
6
4
-1
6
4
9
8
4

result:

ok 10 queries

Test #11:

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

input:

10
65 315
794 631
93 430
241 748
627 717
17 796
293 158
5 316
726 566
341 597
10
649 66 383 213
995 178 432 719
444 692 427 839
579 583 210 240
701 572 237 10
589 127 591 243
468 32 10 86
888 600 568 324
402 267 935 56
292 261 127 348

output:

5
2
-1
4
4
-1
4
2
2
4

result:

ok 10 queries

Test #12:

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

input:

10
1 731
733 836
217 848
666 864
864 698
740 427
464 695
369 694
356 707
316 594
10
40 485 971 195
124 99 694 29
747 235 841 73
831 105 619 128
840 220 770 154
690 649 9 21
163 400 280 398
247 610 475 325
824 258 62 684
259 673 911 370

output:

4
7
-1
4
-1
8
3
7
2
2

result:

ok 10 queries

Test #13:

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

input:

10
36 458
114 866
202 362
687 667
82 766
515 524
254 847
316 914
404 884
439 806
10
765 141 658 35
394 79 867 542
182 194 657 52
536 32 860 552
662 717 901 80
882 746 790 717
626 349 704 702
819 198 730 79
620 144 805 773
890 264 708 199

output:

4
6
8
4
4
-1
4
-1
4
-1

result:

ok 10 queries

Test #14:

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

input:

100
104375211 269633504
751249866 429319365
689374899 460732977
314375099 460732977
809374835 384816748
621874935 481675385
98750214 259162300
526249986 497382191
869374803 319371723
978124745 36649215
235625141 418848161
61250234 175392668
959374755 120418847
940624765 180628270
708124889 452879574...

output:

-1
-1
-1
80
95
-1
-1
85
-1
74
18
3
77
-1
31
-1
91
-1
-1
-1
-1
19
-1
93
-1
80
-1
-1
16
57
-1
-1
-1
92
24
58
93
93
80
80
-1
33
20
85
-1
39
57
92
3
80
-1
63
-1
-1
21
93
-1
93
-1
11
77
56
93
4
-1
39
6
11
-1
83
33
17
-1
-1
91
-1
80
32
8
57
25
53
-1
-1
-1
80
-1
93
-1
80
25
-1
21
16
32
-1
80
-1
-1
-1

result:

ok 100 queries

Test #15:

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

input:

100
578906149 184293121
327343971 93193681
311718991 53403121
527343715 196858561
687499760 60732961
628906085 153926641
382812650 162303601
310156493 48167521
674218527 93193681
559374924 190575841
693749752 39790561
442187574 190575841
613281105 166492081
455468807 193717201
378906405 159162241
40...

output:

-1
-1
-1
-1
-1
-1
-1
-1
79
32
27
53
10
80
-1
79
-1
100
47
-1
-1
-1
50
-1
100
52
45
35
32
53
100
45
97
4
-1
-1
-1
79
95
-1
49
45
71
93
53
-1
80
22
32
-1
-1
-1
-1
35
95
-1
-1
100
-1
-1
4
79
-1
-1
-1
-1
10
-1
35
-1
80
-1
-1
53
100
53
97
-1
-1
-1
-1
53
35
1
-1
55
-1
79
53
-1
-1
-1
-1
-1
100
79
71
-1
-1
80

result:

ok 100 queries

Test #16:

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

input:

100
689374899 184293121
290000112 180104641
610624941 193717201
361250074 190575841
38750246 39790561
265625125 174869041
21875255 5235601
44375243 48167521
194375163 153926641
168125177 143455441
809374835 153926641
942499764 70157041
98750214 103664881
882499796 119371681
209375155 159162241
90499...

output:

-1
-1
1
46
61
46
-1
-1
-1
70
9
3
-1
-1
-1
36
-1
57
76
63
-1
-1
-1
70
-1
25
79
-1
61
-1
70
70
-1
57
17
-1
57
4
70
-1
70
62
-1
-1
87
95
-1
25
99
22
25
25
-1
-1
70
-1
70
-1
25
-1
32
45
63
-1
-1
73
-1
70
90
40
97
-1
25
45
97
82
-1
70
69
-1
96
96
88
22
-1
35
4
-1
-1
-1
48
-1
-1
25
-1
34
6
-1
60
-1

result:

ok 100 queries

Test #17:

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

input:

100
464062523 494764390
206250188 335078529
832812287 269633504
860937269 198952877
193750196 316753922
154687721 232984290
245312663 384816748
673437389 452879574
554687465 492146589
410937557 484293186
898437245 36649215
826562291 282722509
867187265 180628270
176562707 282722509
101562755 1308900...

output:

70
75
-1
-1
-1
75
52
89
75
-1
-1
-1
-1
80
-1
85
72
-1
-1
71
-1
92
-1
24
86
-1
77
52
-1
52
75
62
62
5
80
72
-1
-1
-1
-1
-1
65
52
75
40
52
7
7
-1
68
-1
-1
52
70
64
77
-1
80
75
5
-1
-1
-1
-1
-1
52
-1
23
52
-1
-1
48
52
14
89
-1
-1
-1
-1
52
52
-1
-1
-1
-1
-1
27
53
-1
85
-1
-1
-1
100
-1
53
-1
-1
97
20

result:

ok 100 queries

Test #18:

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

input:

1000
99265 42424
6525 80276
43140 68127
51964 40908
9094 12209
56077 44140
35448 98852
28625 82098
19575 99100
71555 84605
82554 53440
66211 96383
32553 56834
24935 45751
93854 42815
48816 77595
43061 84311
28790 91865
82689 42188
14193 68109
25414 35706
42978 37435
95707 24033
5230 8768
98110 60382...

output:

819
685
289
65
623
702
576
830
400
830
612
633
612
702
819
507
702
702
633
428
702
868
633
702
507
32
1000
623
418
819
430
935
32
633
996
227
32
558
819
702
400
32
749
874
702
400
400
570
633
32
227
702
1000
65
633
430
103
400
830
819
430
749
819
400
492
1000
95
45
1000
935
577
32
647
702
918
32
819...

result:

ok 1000 queries

Test #19:

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

input:

1000
28300 86536
22994 53484
20020 15737
26356 89356
26753 11847
30605 50013
42932 18585
8899 72465
4411 49361
26585 90626
51327 84833
52365 90943
401 48310
10162 38550
50430 95099
1622 24788
12739 10766
14862 73531
33902 46319
32354 4223
11820 34406
45407 20670
14396 75226
75914 58613
8972 69295
27...

output:

941
941
187
994
945
187
626
731
212
731
947
382
187
390
731
994
309
547
358
626
994
994
715
731
715
941
626
490
826
994
81
945
941
994
904
212
715
544
945
994
309
187
994
731
994
994
941
187
544
994
547
309
595
874
941
941
382
941
212
626
417
538
935
994
947
731
410
715
731
382
941
731
715
212
547
7...

result:

ok 1000 queries

Test #20:

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

input:

1000
78977 2074
66043 47947
64156 52000
51800 85017
72769 95309
46109 79414
36736 33830
49795 80993
55338 34213
43064 76999
65173 82889
66315 3970
99433 51579
66787 4438
58356 6041
93272 76919
50078 59284
56182 1396
67908 10035
43286 8887
97186 26326
96899 31500
63434 29455
48732 30636
35450 11558
9...

output:

435
248
755
625
312
972
217
445
972
860
190
860
491
491
5
355
627
458
272
328
491
755
268
173
972
447
972
952
173
190
5
248
762
755
217
328
755
85
491
248
173
457
272
173
173
860
627
762
268
972
491
627
762
755
755
5
796
443
762
972
491
952
755
217
755
328
951
44
845
762
328
457
328
141
268
56
755
7...

result:

ok 1000 queries

Test #21:

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

input:

1000
36848 40244
44170 64859
73782 6532
73472 36699
46777 34630
63459 23868
78986 72094
26865 4675
77925 17395
47410 23785
94705 11395
33118 67032
22374 19144
80516 8954
18542 45485
98758 26287
74867 20978
12033 1526
46253 7927
98382 56613
5121 17203
79008 36907
43003 28552
26916 58370
19889 4914
67...

output:

215
963
60
45
822
270
676
30
676
30
166
118
30
963
519
45
270
782
30
30
215
320
53
270
676
495
894
166
30
541
894
963
215
351
676
676
894
676
30
676
270
30
215
519
215
30
30
320
270
676
320
215
30
676
166
864
30
42
213
639
894
215
270
495
782
894
270
640
30
894
270
732
541
894
320
30
894
732
215
30
...

result:

ok 1000 queries

Test #22:

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

input:

1000
68145 63988
20049 98052
65320 22484
51398 26637
97914 51952
59106 47893
72627 33233
29799 7761
46724 11815
12844 6192
33841 34192
77477 42156
34099 67744
35764 32534
48996 75348
2282 58347
88521 63517
52160 16252
4725 36435
49709 34142
24477 86718
15505 15637
92399 27917
93836 96166
15947 48818...

output:

-1
575
315
315
315
635
468
468
-1
315
368
540
739
635
-1
751
540
216
617
468
368
352
900
540
468
233
468
594
739
368
368
460
578
42
550
575
739
216
468
550
468
623
635
410
540
256
216
607
607
627
739
164
368
352
468
115
236
236
502
438
315
575
315
315
315
460
659
368
468
-1
617
368
438
315
607
368
9...

result:

ok 1000 queries

Test #23:

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

input:

1000
32262 64303
61279 44889
65478 96756
56972 89836
44573 79202
44593 95816
14861 37219
39343 89033
9952 60289
45649 51122
97456 86044
9778 80279
67982 59088
9670 68241
96441 28060
21016 68624
39423 73225
42680 27947
13255 72628
99637 80438
47774 87915
22076 84626
92140 53091
87815 38151
13374 9221...

output:

624
430
999
738
552
528
104
732
880
786
624
552
104
489
757
492
104
624
81
104
81
430
498
999
612
371
104
489
81
624
81
104
104
104
612
738
489
999
719
630
552
145
104
81
999
222
732
222
81
451
145
732
104
489
81
489
104
624
751
786
624
786
624
104
430
624
489
489
81
104
222
104
104
222
489
933
81
6...

result:

ok 1000 queries

Test #24:

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

input:

1000
34857 67019
7415 19038
58888 94480
24948 36803
4940 97142
6746 73658
12646 64268
8936 83873
26881 43000
13264 45746
29912 79916
63241 96138
23329 38401
13070 78956
71587 84047
54276 87450
4314 66647
45825 75136
11422 96929
17321 83961
64272 56369
5721 67445
6924 54753
11517 42364
30176 46402
75...

output:

445
699
950
699
970
238
538
699
68
464
238
534
464
906
68
606
238
880
260
840
98
260
800
68
554
574
-1
464
445
538
538
959
260
554
260
699
699
155
99
68
930
792
809
699
574
68
840
574
606
699
606
68
68
316
534
68
265
221
554
265
970
853
538
98
99
68
260
606
464
845
699
554
554
98
574
800
840
699
699...

result:

ok 1000 queries

Test #25:

score: 0
Accepted
time: 13ms
memory: 3772kb

input:

10000
38272240 171963896
85763537 299021340
209046366 429572370
100566222 323438826
348521793 484670406
683539908 476578264
58128140 238845144
29955072 128921788
390127712 492238275
568014266 497017858
70914001 269704370
596910178 493996823
814144879 413794809
20346155 19534460
68799013 265021178
85...

output:

8602
4201
1274
7787
-1
3807
6942
-1
8012
-1
1953
-1
3471
126
-1
4688
8324
6881
2244
1448
-1
6981
-1
-1
-1
225
-1
-1
-1
9652
-1
3859
-1
3407
-1
6768
706
-1
5023
-1
3857
1993
8681
3627
-1
-1
-1
-1
-1
-1
3972
711
5245
3487
-1
7288
8607
8317
-1
7485
4741
-1
1274
4529
-1
511
-1
9958
-1
4729
9865
-1
6548
...

result:

ok 10000 queries

Test #26:

score: 0
Accepted
time: 13ms
memory: 3752kb

input:

10000
538046266 197784461
476080108 199045941
663791061 132905661
631533394 164931461
340414522 138392441
499419375 199834601
366910531 163795941
674331495 116306201
461428849 197724301
694164716 60114881
400704764 182737881
560764961 194261341
365066466 162412261
620699396 172029401
664760937 13156...

output:

5599
8776
140
-1
-1
7431
3980
-1
3591
1048
184
-1
895
-1
-1
692
-1
-1
-1
6318
-1
7520
3212
-1
-1
8961
-1
-1
4968
130
-1
-1
-1
8664
9472
-1
-1
8184
4917
-1
-1
-1
-1
-1
9512
8119
7078
314
-1
-1
2656
794
7243
9507
-1
3453
7320
1122
5608
-1
8992
-1
-1
-1
4550
6573
-1
-1
1901
-1
-1
3096
9560
-1
2578
9992...

result:

ok 10000 queries

Test #27:

score: 0
Accepted
time: 13ms
memory: 3964kb

input:

10000
966569030 59529261
112676090 136241721
793202482 171189981
571992139 198585341
732637525 183723941
20747735 12892101
683252109 190583121
907025871 124519921
48407673 83990881
254143800 181424701
155339503 155319021
751353384 180404801
120315034 140204761
918000160 116802521
99742983 128818541
...

output:

3871
2274
6019
-1
5758
-1
-1
9574
9439
-1
9040
2566
-1
4137
8283
-1
674
2951
3936
-1
6822
1027
-1
-1
3005
559
2700
1066
-1
-1
-1
-1
4305
-1
-1
-1
1967
9518
-1
-1
6040
4558
6531
3684
9512
537
-1
-1
7834
-1
-1
-1
6166
7209
5730
1227
4946
3857
-1
-1
-1
5156
8811
-1
5758
5547
-1
-1
-1
-1
4462
7317
27
-1...

result:

ok 10000 queries

Test #28:

score: 0
Accepted
time: 13ms
memory: 3768kb

input:

10000
102060601 62886900
627280153 484390637
100184870 11682120
102434260 68830228
463939118 498680015
867963024 239597464
456246576 498153391
893113435 117470067
152868930 294737818
899722180 17406805
112567669 157035046
891276743 131860538
344381251 475642566
775896049 400445831
794264828 38029070...

output:

6145
-1
-1
3581
2094
3936
-1
2441
40
1407
-1
-1
5989
-1
-1
-1
-1
-1
2719
-1
-1
-1
5585
2805
4658
-1
-1
3776
2624
-1
4875
5639
5753
-1
4029
-1
-1
5823
6439
6394
-1
-1
9431
2952
-1
5588
3352
8297
-1
-1
3722
-1
927
-1
6570
-1
7946
4301
8059
8546
8729
416
8546
-1
-1
5485
-1
-1
-1
5562
6531
4057
5984
-1
...

result:

ok 10000 queries

Test #29:

score: 0
Accepted
time: 210ms
memory: 11440kb

input:

1000
950113785 186384430
159684420 380691928
423030085 495461044
956718680 161922916
650997055 482691826
96120480 297230473
28763630 87692221
222855990 430845724
250779655 446691862
416817560 494768737
980064695 1153846
34256810 120153727
789634455 422768809
456250745 498230272
231488130 436153411
2...

output:

813
-1
123
745
866
-1
-1
268
901
512
-1
-1
918
86
-1
71
-1
123
798
-1
-1
410
87
585
-1
606
700
-1
-1
352
-1
444
-1
902
-1
-1
-1
880
-1
-1
736
-1
-1
946
-1
448
-1
-1
-1
91
828
16
663
443
295
268
576
995
438
-1
236
-1
802
143
468
802
-1
-1
587
-1
-1
-1
273
552
365
780
457
400
754
-1
874
844
-1
-1
-1
-...

result:

ok 300000 queries

Test #30:

score: 0
Accepted
time: 196ms
memory: 11260kb

input:

1000
697377268 28215174
392183621 176644830
692908760 53845751
570106531 191260105
355781629 149906569
345427769 138460501
699230064 11261455
529617489 198429282
557845381 194213929
388913981 174890997
651248097 142522009
310115657 66122582
475750170 198890817
388178312 174491000
673645131 109291489...

output:

541
897
825
-1
853
841
929
564
-1
107
827
-1
-1
170
298
335
411
-1
-1
-1
703
141
-1
-1
-1
-1
107
-1
687
845
-1
201
726
-1
853
386
20
314
851
-1
-1
-1
-1
955
-1
653
572
494
-1
13
933
532
654
841
482
-1
-1
-1
170
814
277
934
-1
-1
386
121
236
897
-1
726
147
94
386
-1
-1
-1
892
386
-1
107
959
-1
-1
-1
...

result:

ok 300000 queries

Test #31:

score: 0
Accepted
time: 205ms
memory: 11440kb

input:

1000
271640660 182644785
671792665 190860108
39096040 57476493
66104175 93568530
77025140 103937683
73755390 101014628
597046180 197198522
756217610 177229441
28044285 33107445
63030610 90337785
68916160 96399278
20981625 6092263
728490130 182644785
922647885 104337680
58060590 84737827
23074265 162...

output:

670
-1
211
338
-1
160
86
846
183
35
706
750
206
730
500
541
-1
-1
846
-1
630
147
-1
669
-1
-1
-1
-1
649
472
483
665
-1
-1
-1
319
326
-1
-1
1
-1
21
-1
670
284
-1
952
643
-1
915
-1
553
527
361
-1
-1
959
-1
730
-1
326
-1
826
-1
-1
-1
-1
-1
117
984
650
-1
7
378
307
-1
984
569
-1
-1
310
-1
-1
-1
348
-1
-...

result:

ok 300000 queries

Test #32:

score: 0
Accepted
time: 233ms
memory: 18916kb

input:

800000
784741874 210533410
353085426 422755675
781708646 222556219
506812566 458364034
622169826 435235123
805863650 34374448
645900698 423339673
605188280 441890482
729903354 343317577
516837948 458064559
207100590 171244993
805215474 52868296
323627088 402563830
193698202 8877208
731245436 3412825...

output:

212624
-1
347536
263915
522222
456498
628124
-1
-1
248430
-1
366142
69668
509092
-1
223061
318985
-1
-1
110945
9258
-1
-1
462461
-1
359491
58835
-1
313798
509172
124584
138493
386447
88431
348978
672438
226148
-1
-1
282
-1
515671
127478
447594
355875
200549
-1
407365
-1
206383
12109
130807
-1
62393
...

result:

ok 1000 queries

Test #33:

score: 0
Accepted
time: 1023ms
memory: 27188kb

input:

800000
15080485 373982169
614292757 749424468
378357740 628541521
79381350 843893217
453124596 119687443
484302417 974146980
516574553 714424410
430785761 282534933
619155709 566316775
649254128 947571187
579369273 470081889
732948204 583913287
625089279 367784769
945725299 140561959
209803202 62339...

output:

586234
187231
491365
632028
457193
586234
168531
87162
564334
291344
497225
141303
314784
87162
433031
32614
632028
291344
634856
187231
354237
87162
291344
562246
719786
301555
187231
564334
433031
564334
457193
324214
715723
258984
190365
457193
569824
564334
491365
187231
187231
87162
491365
7157...

result:

ok 300000 queries

Test #34:

score: 0
Accepted
time: 1009ms
memory: 27032kb

input:

800000
970862261 177937361
320989261 359990571
312920234 84857429
506272064 53645521
670985814 111918467
981396383 144694379
874534410 89958190
632186002 67853132
401513257 615236965
950421177 140354653
163951033 125742729
346216429 321373855
348435258 69323315
197782340 66308601
320792790 185377967...

output:

557669
385911
501521
105238
385911
385911
117184
385911
793007
544332
748335
49381
301532
466504
602136
144199
385911
501521
385911
385911
144199
213375
385911
117184
602136
421914
49381
385911
630866
466504
602136
466504
466504
748335
466504
611819
213375
642300
724309
385911
49381
466504
602136
38...

result:

ok 300000 queries

Test #35:

score: 0
Accepted
time: 1016ms
memory: 27188kb

input:

800000
356316339 447808912
751110608 792107918
99787335 360590392
635903936 892982116
589354691 432044768
736118372 905462318
115688455 353611127
468465955 811503516
684297455 707955369
406557555 800894802
377108926 805379888
485562074 944224487
852274684 653824477
205450280 368507930
406144647 7949...

output:

660481
135959
734146
135959
448285
485322
460504
790892
135959
65320
660481
448285
333822
448285
448285
203982
39392
460504
448285
448285
448285
448285
448285
790892
354616
445969
565710
135959
146581
103450
153649
285458
734146
289520
203982
461237
797839
135959
485322
417345
448285
734146
135959
6...

result:

ok 300000 queries

Test #36:

score: 0
Accepted
time: 941ms
memory: 27196kb

input:

800000
435968634 684362547
441064604 505046464
620484857 319028341
792345009 848373099
406573813 192217214
787140656 668338086
230367139 87502268
7703404 901849512
455820381 774559804
562289268 135429218
520747368 875359996
432291380 821751357
648738114 190011349
727553490 530479798
407700356 797048...

output:

167585
357664
446214
357664
663911
115350
85760
72329
616078
164798
663911
684393
676188
594952
644580
602444
357664
446214
526308
357664
39699
273621
616078
115350
49334
409126
663911
459291
144669
174310
691669
217840
19452
115350
273621
268124
48172
115350
438850
95295
218749
602444
115350
19452
...

result:

ok 300000 queries

Test #37:

score: 0
Accepted
time: 931ms
memory: 27052kb

input:

800000
143880629 433393385
193643808 401935625
734144605 58191320
190108233 190306639
307572084 749789023
121817450 260320727
134903541 534247251
409365097 625924172
424385045 60106896
252114717 122961448
42626244 383252808
751403226 173229739
46834403 459189568
359323778 215474092
882772085 3671827...

output:

480541
92223
156125
701890
15645
296767
11217
181068
11217
441804
404966
709519
624357
764667
460969
739298
15645
701890
15645
709519
709519
96467
470341
460969
607336
15645
329972
709519
404966
65700
404966
480541
446209
672340
761190
11217
441804
460969
241396
679571
96467
296767
241396
480541
308...

result:

ok 300000 queries

Test #38:

score: 0
Accepted
time: 948ms
memory: 27064kb

input:

800000
120950448 879584359
488651784 384240390
50352543 580051609
684557638 854032618
100203234 982242049
217991920 559662067
213687995 844385542
640792989 809993298
293538395 394639002
55549277 500280434
233493640 173065576
282807645 701191513
358926465 109895126
302448777 536794411
48385886 772998...

output:

290031
489957
362163
489957
489957
99900
290031
751464
489957
489957
489957
277701
349835
473115
523343
465561
739183
290031
290031
473115
489957
799596
465561
465561
563074
109643
6949
362163
362163
601690
662654
99900
552159
563074
662654
290031
489957
743514
465561
362163
473115
489957
681141
473...

result:

ok 300000 queries

Test #39:

score: 0
Accepted
time: 1034ms
memory: 27124kb

input:

800000
258986337 48032349
495126669 937655014
363138946 448769089
947944161 53929755
695238886 486364930
892505590 867548021
875030640 945391816
977957428 818317778
651160767 12263458
769679148 273876574
587102465 436376813
886111321 650487953
923548509 996735880
941414107 662118453
515705115 756515...

output:

568655
691229
161204
40473
466978
444646
541654
795946
100470
41819
41819
420827
161204
568655
597364
323148
780000
161204
724804
597364
718511
78744
438862
78744
795946
398408
180799
597364
780000
412729
465193
41819
194302
41819
161204
444646
161204
375076
78744
795946
222906
20614
568655
223362
6...

result:

ok 300000 queries

Test #40:

score: 0
Accepted
time: 1020ms
memory: 27060kb

input:

800000
641334233 187074003
875766628 667554002
336586126 18610447
676448239 499188275
621023240 769515237
625565226 349609934
308558729 152015742
452394191 284105986
984185478 657079647
11781168 368322295
713554606 117993246
985186221 94429578
923572297 942840885
977883542 451479220
601049999 244349...

output:

33450
166949
612347
793741
581510
507267
612347
612347
337971
81058
82796
612347
556831
612347
485634
631098
534778
93154
612347
82796
612347
793741
631098
58562
337971
782677
782677
337971
631098
589479
166243
755680
612347
29272
631098
755680
267052
893
337971
612347
33450
337971
766795
631098
408...

result:

ok 300000 queries

Test #41:

score: 0
Accepted
time: 1042ms
memory: 27056kb

input:

800000
682431823 998431836
406575665 715536389
841120406 907463684
793426356 829068871
934050284 751400755
623576408 532345158
336831574 979273896
267559821 851441101
580059710 848375997
857971070 917959840
997245552 635406298
989754491 416304670
767863602 676672360
967769179 400935506
401530137 450...

output:

216814
483421
586574
186541
395942
188562
483421
342986
9006
703842
766634
709347
798969
483421
47880
773593
709347
709347
648426
187978
187978
47880
47880
423178
9006
187978
490115
490115
278514
328726
278514
68143
770116
188641
766634
47880
725074
407741
187978
9006
47880
798969
30165
282436
18856...

result:

ok 300000 queries

Test #42:

score: 0
Accepted
time: 1006ms
memory: 27068kb

input:

800000
260900518 163178668
316985323 38366297
864012643 36553540
639356817 372141031
901980026 653040850
979372608 57617402
463572691 67613183
465802714 237038526
984756848 217872622
400002897 37109692
508000917 448629376
807796704 247261183
374507931 33039202
376743300 20719885
182372501 150756837
...

output:

460936
506758
213566
479724
715148
564239
56151
189014
766551
479724
564239
766551
479724
564239
766551
154739
282011
189014
154739
390774
611481
327338
456140
390774
601368
40462
390774
601368
80336
291509
688857
601368
189014
108686
226017
479724
110746
390774
-1
154739
226017
564239
564239
390774...

result:

ok 300000 queries

Test #43:

score: 0
Accepted
time: 811ms
memory: 27096kb

input:

800000
251619778 603625954
88806435 329362117
123326212 392067283
296890364 355020689
453945473 85562108
371565146 158989343
6919200 580245649
73059719 45172878
328198756 4456177
616630236 812681826
508575995 177693374
50473678 49420471
33162113 377776961
389279708 556666414
400663114 454419600
2785...

output:

582460
455063
656061
455063
699677
231755
538505
582460
180966
434801
75196
566270
455063
40346
228836
455063
334549
85916
538505
40346
40346
795822
168202
455063
45102
111466
45102
111466
180966
795822
45102
40346
6903
85916
507386
505631
455063
768233
699677
647904
228836
566270
795822
465562
7682...

result:

ok 300000 queries

Test #44:

score: 0
Accepted
time: 1006ms
memory: 27032kb

input:

800000
431411522 229477104
848697968 348780310
898224829 132660945
507266195 347040936
993745897 80751505
321545732 33082073
878225728 84657346
209237198 82627583
841969289 207966358
624596318 250828990
996107002 180430843
358130378 12508253
441659996 123282966
194576559 234455130
980404912 38272182...

output:

39184
759958
259972
39184
575326
600429
583188
508226
169228
16760
368483
508226
368483
-1
171250
143409
508226
587672
16760
266711
575326
575326
16760
672240
379112
169228
259972
575326
291792
600429
169228
564897
606626
600429
600429
564897
-1
508226
508226
508226
277505
600429
-1
171250
564897
60...

result:

ok 300000 queries

Test #45:

score: 0
Accepted
time: 686ms
memory: 27060kb

input:

800000
188938795 288699575
67887586 105641896
32659451 156569107
296727786 203608279
484158735 163446877
566391153 534307510
307733866 600060663
20710145 929949
432850012 187395623
139988134 18857803
40336164 528819843
33665824 69337269
458879498 322488348
293366055 70654341
374090214 494658918
2922...

output:

638686
738312
234712
-1
459541
105828
243098
-1
638686
-1
234712
638686
234712
234712
782266
-1
-1
638686
-1
635143
234712
538754
638686
234712
234712
638686
-1
234712
-1
-1
-1
-1
638686
509079
638686
638686
638686
509079
459541
105828
-1
-1
638686
638686
638686
638686
-1
-1
198675
509079
-1
234712
...

result:

ok 300000 queries

Test #46:

score: 0
Accepted
time: 983ms
memory: 27116kb

input:

800000
360084296 195820110
910757589 108972900
308092165 6844895
671280725 135888029
391985030 78719755
793012367 138559273
832866938 99804758
784742353 332383861
644722058 59402949
412571121 24988121
678975223 547753759
255669626 46173402
668079205 198930675
336540127 145350434
607058233 34893572
3...

output:

328857
-1
149819
-1
-1
246178
149819
708066
-1
-1
-1
-1
-1
246178
745449
149819
328857
-1
-1
533744
533744
328857
328857
106919
-1
229306
294608
273416
-1
569836
-1
798088
-1
328857
328857
-1
-1
149819
-1
149819
-1
-1
328857
501408
-1
-1
798088
487814
708066
149819
437920
46479
527146
-1
328857
7080...

result:

ok 300000 queries

Test #47:

score: 0
Accepted
time: 765ms
memory: 27076kb

input:

800000
152842815 74697484
203259578 28007914
411824102 137543311
438454387 197483150
336272234 310863327
17202834 532334222
619796690 62775834
394092189 99135257
349748840 122319719
167450725 108884484
658117474 69039084
98604967 161108018
287641562 13743817
447122406 190157107
325304405 218288364
6...

output:

-1
-1
-1
218926
218926
-1
554340
-1
-1
-1
-1
-1
614414
-1
-1
-1
218926
-1
-1
-1
-1
218926
-1
391890
-1
182506
706641
-1
698033
-1
-1
-1
-1
218926
-1
-1
760939
305149
-1
-1
305551
-1
698033
-1
-1
201
305149
-1
721687
-1
698033
-1
-1
-1
-1
-1
698033
-1
-1
-1
-1
-1
706641
-1
-1
614414
-1
-1
-1
708979
-...

result:

ok 300000 queries

Test #48:

score: 0
Accepted
time: 352ms
memory: 18668kb

input:

800000
452584216 922884157
457016389 40191615
541267135 947490269
900953178 784029360
473550884 368219633
128951937 356906008
193915529 753085777
73540235 582645630
25564006 145574750
221031041 782127628
202616412 683241591
515050143 344401923
92110669 153190440
767616743 12663196
817130062 97449849...

output:

657708

result:

ok 1 queries

Test #49:

score: 0
Accepted
time: 84ms
memory: 11332kb

input:

1
693086739 667763491
300000
852876012 399679873 98139376 514550845
629716446 118469668 422688498 675874478
191667130 784447016 910409525 191474380
733775741 334768736 577278115 159083409
942644283 632600216 227316798 70214581
217095745 317102913 744033805 549805139
573318369 63393487 979854392 9169...

output:

1
-1
1
1
1
1
1
-1
-1
-1
-1
-1
-1
1
-1
-1
-1
-1
-1
1
1
1
-1
-1
-1
1
1
-1
-1
1
-1
1
-1
-1
1
-1
1
-1
1
-1
-1
1
-1
1
1
-1
-1
-1
-1
-1
-1
-1
1
-1
1
1
-1
-1
-1
1
-1
-1
-1
-1
-1
-1
-1
1
1
-1
-1
-1
-1
1
-1
1
1
-1
1
-1
-1
1
1
-1
-1
-1
-1
1
-1
-1
-1
-1
-1
-1
-1
1
-1
-1
1
1
-1
1
1
-1
-1
1
1
1
-1
-1
-1
-1
-1
1
...

result:

ok 300000 queries

Test #50:

score: 0
Accepted
time: 875ms
memory: 27032kb

input:

800000
41248511 34357201
574577849 454048096
517186397 457183807
950307677 118677109
884752946 293758867
523251953 457045759
40963937 26801584
830652521 355644061
44452118 79190785
210502025 386830117
660988142 440055658
856475984 329978251
886582946 291023758
40526786 5722294
45751877 90901372
1542...

output:

399390
21454
261344
492833
399390
21454
496594
21454
512536
492833
399390
512536
789169
399390
399390
512536
636105
455884
629295
21454
156465
399390
399390
512536
496594
21454
496594
399390
159383
21454
629295
496594
399390
261344
629295
496594
159383
21454
21454
399390
496594
399390
21454
719340
2...

result:

ok 300000 queries

Test #51:

score: 0
Accepted
time: 675ms
memory: 27048kb

input:

800000
632173228 91701637
346877067 4551964
458234225 149131846
357215851 68661617
652055837 24284057
352179990 51178978
636843939 82964895
347145301 12845078
354979892 61790667
361791238 80058138
593478354 130824625
368260289 92433013
359998066 75930841
600766613 126057656
644994608 61875640
597806...

output:

488508
488508
488508
406469
72138
441150
72138
488508
743773
406469
441150
72138
72138
441150
406469
488508
743773
488508
72138
441150
72138
72138
488508
406469
406469
406469
743773
72138
406469
743773
441150
406469
488508
441150
743773
406469
441150
743773
488508
488508
488508
406469
406469
488508
...

result:

ok 300000 queries

Test #52:

score: 0
Accepted
time: 882ms
memory: 27104kb

input:

800000
65757188 62689869
269370626 139188157
955510583 26518114
885050060 97772881
496458959 152446911
52161959 44208254
803719241 125720052
165125090 117275485
383955854 149639430
679628288 145065526
446211764 151891384
55291808 49323469
669690275 145960450
951580034 36874392
922974215 73479708
124...

output:

341516
102721
351941
260354
351941
375628
519397
347967
347967
519397
341516
351941
347967
347967
347967
347967
375628
375628
115011
375628
173631
260354
368912
351941
347967
375628
375628
66656
351941
660128
360756
260354
360756
115011
66656
347967
347967
341516
66656
368912
368912
347967
375628
36...

result:

ok 300000 queries

Test #53:

score: 0
Accepted
time: 814ms
memory: 27076kb

input:

800000
626237280 432349696
757003288 292641805
789494698 188072122
530105498 456180097
745028798 317009065
358140544 424528240
737435850 330335983
765006744 273409711
749242508 308949679
803641694 80019814
802061922 100008973
586576564 446588914
806114548 22337197
741009196 324243457
242852116 29231...

output:

122264
674505
98628
688937
688937
122264
274977
674505
122264
674505
346624
674505
688937
643776
674505
688937
688937
98628
122264
643776
674505
674505
674505
466104
122264
122264
274977
122264
674505
122264
122264
688937
674505
187875
17173
98628
688937
688937
688937
122264
688937
466104
187875
122...

result:

ok 300000 queries

Test #54:

score: 0
Accepted
time: 968ms
memory: 26876kb

input:

800000
834077927 353574577
845292725 342821431
179770262 365538184
41078210 31078891
501405284 458363770
154508981 342621811
99047747 268364593
98591429 267540160
153833189 341938897
71886272 207678379
349756385 443540857
957461744 58130191
518351111 458177836
911861876 247140037
427626734 455265973...

output:

257313
257313
257313
315638
269298
269298
315638
257313
757331
257313
757331
755992
720073
257313
309169
257313
703467
757331
269298
257313
755992
257313
269298
92093
257313
269298
269298
257313
269298
269298
257313
623577
269298
755992
257313
269298
757331
257313
315638
269298
118924
118924
720073
...

result:

ok 300000 queries

Test #55:

score: 0
Accepted
time: 729ms
memory: 27188kb

input:

800000
407480143 131734528
652650345 16928867
612352630 116938859
359609733 75323895
646223710 57906840
511991534 152543911
644199740 64780746
570662214 141945763
386352125 115704752
349585185 37944390
507601730 152691542
573150238 141017833
416490931 136548124
597131713 128872230
347033667 10562730...

output:

574427
251373
251373
251373
574427
251373
626271
626271
251373
251373
334040
699663
334040
334040
251373
251373
626271
626271
251373
626271
251373
699663
251373
699663
574427
251373
574427
699663
251373
251373
251373
334040
699663
251373
574427
699663
574427
251373
699663
251373
251373
699663
626271...

result:

ok 300000 queries

Test #56:

score: 0
Accepted
time: 962ms
memory: 27060kb

input:

800000
452109830 152349175
421461659 151562477
679460231 145420349
905086145 86902172
911099447 82911948
659512748 147141905
811841360 124054540
50505656 41502399
941064599 54843818
45837596 30876979
56107313 50885233
82921988 78562940
51926471 44130724
714515573 141637218
654484334 147531551
735109...

output:

166787
56629
727049
56629
166787
412527
686658
56629
28424
638268
412527
412527
497115
635094
686658
686658
727049
727049
412527
412527
727049
56629
727049
166787
718870
35106
166787
731482
166787
638268
727049
686658
727049
391737
727049
727049
727049
166787
635094
28424
686658
727049
727049
28424
...

result:

ok 300000 queries

Test #57:

score: 0
Accepted
time: 885ms
memory: 27056kb

input:

800000
674001270 404386768
228695254 257093488
389105760 439754404
805760572 37898605
206735694 169104463
278383528 355075291
238806822 283935898
590873178 446404279
403785632 444803128
327998240 405933757
765596692 272894146
527142576 457420696
194319074 40442080
208239930 177472858
759287872 28844...

output:

70051
785590
70051
660170
522687
413427
780979
660170
413427
522687
70051
620042
660170
620042
620042
660170
660170
522687
70051
620042
70051
660170
70051
70051
620042
660170
660170
569144
522687
660170
620042
522687
660170
70051
660170
620042
660170
70051
785590
588867
522687
660170
660170
660170
6...

result:

ok 300000 queries

Test #58:

score: 0
Accepted
time: 1103ms
memory: 27036kb

input:

800000
859533899 327603466
851289878 336683992
876400955 306639541
591665207 453328054
959458490 8337028
921461738 225310183
422223389 454818562
958886141 32083630
79088063 226664203
953797097 95653528
48485471 112129198
107408054 282698995
228135032 398545966
168306428 355789126
949788818 122848741...

output:

-1
-1
628786
425363
-1
43479
-1
-1
94145
348981
-1
663730
-1
515689
780158
-1
-1
129356
-1
466895
-1
-1
118786
416460
-1
347055
331187
-1
287157
-1
612268
42733
-1
-1
-1
155752
555622
633498
207209
413473
164320
-1
331363
126606
-1
-1
-1
293370
122209
275746
637169
174468
271456
-1
449204
676346
232...

result:

ok 300000 queries

Test #59:

score: 0
Accepted
time: 844ms
memory: 26996kb

input:

800000
562323617 144714102
519118500 152170180
420817041 138559378
637109217 82772283
625699939 101897203
364847052 86683695
467069436 150816840
616415019 112944366
364663264 86330245
374592794 102293891
456788435 149234789
438903897 145075132
580187050 138113766
347406498 17842146
598689659 1278551...

output:

520211
81692
656591
-1
8596
-1
-1
322324
671267
240170
653988
-1
186790
45678
-1
410267
247862
-1
-1
771819
432372
-1
-1
-1
-1
171218
-1
-1
-1
-1
-1
95410
662169
506322
-1
-1
75088
670737
253959
223058
-1
-1
71576
432471
149097
-1
771669
53016
-1
381482
-1
350304
525953
-1
-1
-1
-1
783582
791699
-1
...

result:

ok 300000 queries

Test #60:

score: 0
Accepted
time: 1119ms
memory: 27064kb

input:

800000
942756512 52543924
44606774 27253318
536381699 152557131
43053236 21652509
908162630 84923465
932345795 65063433
955505426 26892791
184184135 123045270
50861096 42198411
874591718 103020582
129816644 104926195
137604293 108095080
197493518 126366707
900724946 89610039
227731463 132772548
8126...

output:

4411
778200
471585
594592
476392
659458
-1
-1
72755
732976
566755
44062
295553
-1
748218
180738
785560
629341
-1
691647
-1
220341
-1
-1
-1
297571
-1
200730
507169
-1
-1
-1
327312
-1
-1
300045
120889
704921
-1
-1
174161
-1
432406
-1
-1
47829
370200
526917
-1
119722
500523
-1
696752
679796
-1
-1
23831...

result:

ok 300000 queries

Test #61:

score: 0
Accepted
time: 1050ms
memory: 26876kb

input:

800000
795839484 153301438
429074202 451427452
443716494 454140505
498466270 458418625
770201744 260350057
196131196 77723965
294429446 374847478
793911864 165371065
738981738 328811518
436369790 452872345
244166796 296308363
195403854 65605399
510419398 458286268
311913826 392521549
281041900 35866...

output:

730419
-1
664866
-1
122704
-1
-1
-1
75622
-1
-1
597118
622634
165027
618897
-1
-1
-1
-1
493157
425417
-1
-1
-1
264570
245144
686959
-1
-1
773229
-1
489627
184970
-1
55353
421000
-1
684697
720163
34840
418334
429292
-1
93544
-1
-1
-1
-1
-1
-1
-1
612043
-1
380607
435643
-1
-1
597257
546540
548626
1043...

result:

ok 300000 queries

Extra Test:

score: 0
Extra Test Passed