QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#593983#8779. Square of TrianglesbettererWA 810ms6092kbC++238.9kb2024-09-27 17:46:022024-09-27 17:46:03

Judging History

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

  • [2024-09-27 17:46:03]
  • 评测
  • 测评结果:WA
  • 用时:810ms
  • 内存:6092kb
  • [2024-09-27 17:46:02]
  • 提交

answer

#ifndef ONLINE_JUDGE
// #define ONLINE_JUDGE
#endif
#include <bits/stdc++.h>
using namespace std;
#define int long long
using ull = unsigned long long;

#ifdef ONLINE_JUDGE
#define des(...)
#define de(...)
#else
#define des(x) cerr<<(x)<<endl
#endif

struct point {
    double x, y;

    bool operator<(const point& p) const {
        return x < p.x || (x == p.x && y < p.y);
    }

    point operator-(const point& p) const {
        return {x - p.x, y - p.y};
    }

    point operator+(const point& p) const {
        return {x + p.x, y + p.y};
    }

    double operator*(const point& p) const {
        return x * p.y - y * p.x;
    }

    [[nodiscard]] point complex_mul(const point& p) const {
        return {x * p.x - y * p.y, x * p.y + y * p.x};
    }

    [[nodiscard]] point complex_div(const point& p) const {
        return {x * p.x + y * p.y, y * p.x - x * p.y};
    }

    point operator*(const double v) const {
        return {x * v, y * v};
    }

    point operator/(const double v) const {
        return {x / v, y / v};
    }

    [[nodiscard]] double hypot() const {
        return ::hypot(x, y);
    }

    [[nodiscard]] point unit() const {
        return *this / hypot();
    }

    [[nodiscard]] double dot(const point& p) const {
        return x * p.x + y * p.y;
    }
#ifndef ONLINE_JUDGE
    void print() const {
        ::print(make_pair(x, y));
    }
#endif
};

struct line {
    point p1, p2;

    [[nodiscard]] bool separate(const point& q1, const point& q2) const {
        double t1 = (q1 - p1) * (p2 - p1), t2 = (q2 - p1) * (p2 - p1);
        return abs(t1) > 1e-6 && abs(t2) > 1e-6 && t1 * t2 < 0;
    }

    [[nodiscard]] bool intersect(const line& l) const {
        return separate(l.p1, l.p2) && l.separate(p1, p2);
    }
};

struct triangle {
    vector<point> ps;


    static triangle from_edge(double x, double y, double z) {
        triangle ret;
        ret.ps.emplace_back(0, 0);
        ret.ps.emplace_back(sqrt(x), 0);
        double cos_angle = (x + y - z) / (2 * sqrt(x * y));
        ret.ps.emplace_back(sqrt(y) * cos_angle, sqrt(y) * sqrt(1 - cos_angle * cos_angle));
        return ret;
    }

    [[nodiscard]] double size() const {
        return abs((ps[1] - ps[0]) * (ps[2] - ps[0])) / 2;
    }

    [[nodiscard]] bool intersect(const triangle& t) const {
        for (int i = 0; i < ps.size(); ++i) {
            for (int j = 0; j < t.ps.size(); ++j) {
                if (line{ps[i], ps[(i + 1) % ps.size()]}.intersect({t.ps[j], t.ps[(j + 1) % t.ps.size()]}))return true;
            }
        }
        return false;
    }
#ifndef ONLINE_JUDGE
    void print() const {
        ::print(ps);
    }
#endif
};

double area;

struct many_triangle {
    vector<triangle> ts;

    [[nodiscard]] vector<many_triangle> combine_with(const triangle& tri) const {
        vector<many_triangle> ret;
        for (auto& t : ts) {
            vector<int> perm(3);
            iota(perm.begin(), perm.end(), 0);
            do {
                auto vec1 = t.ps[perm[1]] - t.ps[perm[0]];
                auto vec2 = t.ps[perm[2]] - t.ps[perm[0]];
                auto angle = vec1 * vec2 > 0 ? vec1.unit().complex_div(tri.ps[2].unit()).unit() : vec1.unit();
                auto pos = t.ps[perm[0]];
                auto tri2 = tri;
                for (auto& p : tri2.ps)p = p.complex_mul(angle) + pos;
                // 剪枝,去掉过远点
                for (auto& p : tri2.ps) {
                    for (auto& t2 : ts) {
                        for (auto& p2 : t2.ps) {
                            if ((p - p2).hypot() > sqrt(area * 2) * (1 + .01)) {
                                goto end;
                            }
                        }
                    }
                }
                for (auto& t2 : ts) {
                    if (t2.intersect(tri2)) {
                        goto end;
                    }
                }
                {
                    many_triangle rt = *this;
                    rt.ts.push_back(tri2);
                    ret.push_back(rt);
                }
            end:;
            } while (ranges::next_permutation(perm).found);
        }
        return ret;
    }

    [[nodiscard]] bool check() const {
        vector<point> vp;
        for (auto& t : ts)for (auto& p : t.ps)vp.push_back(p);
        // 求凸包
        sort(vp.begin(), vp.end());
        sort(vp.begin() + 1, vp.end(), [&](const point& u, const point& v) {
            auto t = (u - vp[0]) * (v - vp[0]);
            if (t)return t > 0;
            return u < v;
        });
        vector<point> sta;
        sta.push_back(vp[0]);
        for (int i = 1; i < vp.size(); ++i) {
            while (sta.size() >= 2 && (sta.back() - sta[sta.size() - 2]) * (vp[i] - sta.back()) <= 1e-6) {
                sta.pop_back();
            }
            sta.push_back(vp[i]);
        }
        // sta.push_back(vp[0]); //sta+1
        // if (sta.size() != 4) {
        //     // de(*this);
        //     // des("not 4 edges");
        //     return false;
        // }
        double s = 0, c = 0;
        for (int i = 1; i < sta.size(); ++i) {
            s += (sta[i - 1] - sta[0]) * (sta[i] - sta[0]) / 2;
        }
        vector<double> edges;
        for (int i = 0; i < sta.size(); ++i) {
            edges.push_back((sta[i] - sta[(i + 1) % sta.size()]).hypot());
            c += edges.back();
        }
        if (abs(s / area - 1) > 1e-6) {
            // des("not same area");
            // de(ans, area);
            return false;
        }
        if (abs(c / (4 * sqrt(area)) - 1) > 1e-6) {
            return false;
        }
        de(*this);
        de(s, area, c, 4 * sqrt(area), sta);
        // ranges::sort(edges);
        // while (edges.front() < 1e-6) edges.erase(edges.begin());
        // de(edges.size(), edges);
        // if (edges.size() != 4) {
        //     des("not 4 edges");
        //     return false;
        // }
        // if (abs(edges.front() - edges.back()) > 1e-6) {
        //     des("not equal edges");
        //     // de(edges);
        //     return false;
        // }
        return true;
        if (abs((sta[0] - sta[1]).hypot() - (sta[1] - sta[2]).hypot()) > 1e-6) {
            des("not perpendicular");
            return false;
        }
        if (abs((sta[0] - sta[2]).dot((sta[1] - sta[3]))) > 1e-6) {
            // des("not square");
            return false;
        }
        // de(edges);
        return true;
    }
#ifndef ONLINE_JUDGE
    void print() const {
        ::print(ts);
    }
#endif
};

struct triangle_order {
    vector<int> v;
    int id;

    bool operator<(const triangle_order& t) const {
        return v < t.v;
    }
};

int T;
vector<int> a(3);

signed main() {
    bool output = false;
    cin.tie(nullptr)->sync_with_stdio(false);
    cin >> T;
    while (T--) {
        int div = 0;
        area = 0;
        vector<vector<triangle>> vvt;
        vector<triangle_order> vto;
        for (int i = 0; i < 4; ++i) {
            for (auto& j : a) {
                int x;
                cin >> x;
                if (div == 0) {
                    div = 1;
                    while (x > div * 1000) div *= 10;
                }
                j = x;
                // if (T == 19 && i == 0 && x == 2352936)output = true;
            }
            if (output && T <= 20 - 5) {
                for (auto& j : a)cout << j << ' ';
                continue;
            }
            vvt.emplace_back();
            ranges::sort(a);
            if (i)vto.push_back({a, i});
            do {
                vvt.back().push_back(triangle::from_edge(a[0] * 1. / div, a[1] * 1. / div, a[2] * 1. / div));
            } while (ranges::next_permutation(a).found);
            area += vvt.back().back().size();
        }
        if (output) {
            cout << endl;
            continue;
        }
        for (int i = 0; i < 4; ++i) {
            de(i, vvt[i].size(), vvt[i]);
        }
        // exit(0);
        sort(vto.begin(), vto.end());
        do {
            vector<many_triangle> vmt, vmt2;
            vmt.push_back({{vvt[0][0]}});
            for (int i = 1; i < 4; ++i) {
                for (auto& mt : vmt) {
                    for (auto& t : vvt[vto[i - 1].id]) {
                        auto res = mt.combine_with(t);
                        vmt2.insert(vmt2.end(), res.begin(), res.end());
                    }
                }
                vmt = move(vmt2);
            }
            for (auto& mt : vmt) {
                if (mt.check()) {
                    cout << 1 << endl;
                    goto end;
                }
            }
        } while (next_permutation(vto.begin(), vto.end()));
        // de(vmt);
        cout << 0 << endl;
    end:;
        // exit(0);
    }
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 27ms
memory: 4360kb

input:

3
1 1 2
2 1 1
2 1 1
1 2 1
1 1 1
1 1 1
1 1 1
1 1 1
5 125 130
125 20 145
45 130 145
145 145 80

output:

1
0
1

result:

ok 3 lines

Test #2:

score: 0
Accepted
time: 279ms
memory: 3968kb

input:

20
1998001 7984010 9982009
1998001 7984010 1994005
7984010 9978013 9982009
9978013 1994005 7984010
9958045 7968034 9962037
7968034 1994005 9962037
9958045 1990013 7968034
1994005 1990013 7968034
7952074 9938097 1986025
7952074 9942085 1990013
7952074 9942085 9938097
1986025 7952074 1990013
7936130 9...

output:

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

result:

ok 20 lines

Test #3:

score: 0
Accepted
time: 378ms
memory: 4492kb

input:

20
1148639 3581051 1216206
9999916 7026968 270268
6013463 6013463 6756700
6013463 6013463 6756700
2608850 8630930 9445800
9862940 6448880 6939290
8631650 3682160 5184310
7504700 6652150 1917140
2359505 3170711 2299108
4027811 6760781 2960240
4679918 6106006 3178400
8153446 7975057 5222088
8849500 88...

output:

0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1

result:

ok 20 lines

Test #4:

score: 0
Accepted
time: 662ms
memory: 4552kb

input:

20
7300000 8100000 10000000
8100000 7300000 1000000
1000000 7300000 2900000
2900000 10000000 7300000
61728 8950560 9999936
7901184 4012320 4999968
8950560 3950592 4999968
4012320 123456 4999968
4494200 9932182 9932182
8381683 112355 9932182
5505395 9460291 9932182
9999595 4494200 9190639
5994936 671...

output:

1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0

result:

ok 20 lines

Test #5:

score: 0
Accepted
time: 515ms
memory: 4332kb

input:

20
10000000 5078125 3828125
78125 5000000 5078125
1250000 10000000 6250000
5000000 6250000 1250000
7079600 5663680 1415920
7079600 796455 9999935
5663680 9999935 5752175
5663680 88495 5752175
4410468 1135368 9999972
5676840 4541472 5676840
4541472 5676840 5676840
8078580 742356 6288192
8345560 44707...

output:

1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0

result:

ok 20 lines

Test #6:

score: 0
Accepted
time: 615ms
memory: 4516kb

input:

20
10000000 5078125 3828125
2031250 78125 1953125
703125 5078125 2031250
5000000 10000000 5000000
5000000 10000000 5000000
5000000 2890625 390625
6250000 1250000 10000000
1250000 2890625 3515625
6711400 9999986 3288586
4899322 4295296 604026
6979856 9999986 4899322
6711400 6979856 268456
9767552 645...

output:

1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0

result:

ok 20 lines

Test #7:

score: 0
Accepted
time: 583ms
memory: 4732kb

input:

20
3063559 8439238 9999919
3063559 9999919 3005756
8381435 9999919 8439238
8381435 3005756 9999919
6923007 4319483 4852022
2130156 4319483 769223
9999899 3076892 6923007
6923007 2899379 4852022
3271584 4999968 493824
6049344 61728 5246880
4999968 4999968 9999936
5246880 3271584 3950592
7398784 99999...

output:

1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0

result:

ok 20 lines

Test #8:

score: 0
Accepted
time: 592ms
memory: 6092kb

input:

20
5524800 4475088 9999888
55248 4475088 4530336
9999888 5580048 5524800
55248 4530336 5580048
7123920 8940020 2698748
6206580 7677584 8296048
6252164 6473284 9023920
7524124 4702788 5944204
7901120 7901120 6320896
6320896 7901120 7901120
9135670 9999855 913567
1506151 1111095 98764
2222220 3555552 ...

output:

1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0

result:

ok 20 lines

Test #9:

score: 0
Accepted
time: 463ms
memory: 4528kb

input:

20
3404348 6811514 5073762
1575108 4047618 3481696
6589302 6594868 4559458
5124278 2664770 3517574
5393960 2157584 5393960
5393960 2157584 5393960
2199076 9999572 2821456
2157584 8972645 8723693
2091488 4248335 9999927
9999927 9542414 7385567
4248335 9542414 9999927
9999927 2091488 7385567
5867350 7...

output:

0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1

result:

ok 20 lines

Test #10:

score: 0
Accepted
time: 479ms
memory: 4932kb

input:

20
4753532 8244880 6269438
3937444 762818 4555348
7280126 5303718 8327606
9077712 1705788 9903866
4999968 9999936 4999968
555552 7222176 9999936
6543168 1543200 4999968
7222176 6543168 61728
1360000 6560000 3664000
6560000 6560000 4608000
10000000 2960000 6560000
1152000 2320000 3664000
1709400 5470...

output:

0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0

result:

ok 20 lines

Test #11:

score: 0
Accepted
time: 447ms
memory: 4512kb

input:

20
2615382 9846144 9999990
9846144 9999990 9999990
9999990 2769228 2615382
9999990 2769228 9999990
9191125 9999944 4779385
1323522 9191125 6544081
6544081 9999944 9191125
1323522 9191125 4779385
7028892 1743768 1991340
7028892 7028892 1743768
8234460 4865328 7028892
2378844 7599384 9999756
9731530 4...

output:

1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1

result:

ok 20 lines

Test #12:

score: 0
Accepted
time: 616ms
memory: 4372kb

input:

20
4999960 6173420 3316300
4999960 4999960 9999920
459180 459180 918360
1632640 459180 3316300
6328125 5078125 156250
5078125 6328125 10000000
6328125 5078125 10000000
6328125 156250 5078125
9979836 8089680 8280504
7601784 7634364 7141536
5377824 7028244 4492560
5815068 7928868 4377312
720000 800000...

output:

1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1

result:

ok 20 lines

Test #13:

score: 0
Accepted
time: 562ms
memory: 4520kb

input:

20
9999916 1689175 5743195
5743195 878371 4999958
9999916 4999958 4999958
1689175 878371 4999958
6301605 4049556 6301605
2024778 4049556 2024778
7293333 330576 6301605
9999924 6115656 3388404
617280 7901184 6543168
617280 123456 987648
4999968 4999968 9999936
1543200 6543168 4999968
3828125 1953125 ...

output:

1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1

result:

ok 20 lines

Test #14:

score: 0
Accepted
time: 402ms
memory: 4480kb

input:

20
9999720 2888808 3555456
7610898 3555456 7610898
4944306 8805309 1805505
7610898 7610898 3555456
4999968 4999968 9999936
6543168 1543200 2530848
987648 9999936 6543168
1543200 987648 2530848
4999967 2358475 5471662
754712 5471662 9999934
754712 4999967 2358475
4999967 9999934 4999967
5371860 20661...

output:

0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0

result:

ok 20 lines

Test #15:

score: 0
Accepted
time: 620ms
memory: 4268kb

input:

20
4999968 4999968 9999936
4999968 5555520 555552
5555520 3402756 1180548
1180548 2222208 1736100
2207678 4505792 4722268
6840476 4330164 8510736
5829672 8496568 9904306
4191336 5368108 9200414
2644740 821072 2890020
3199420 6624380 4992680
6593608 7493780 2880304
9678732 5684644 8431388
9999920 433...

output:

1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0

result:

ok 20 lines

Test #16:

score: 0
Accepted
time: 500ms
memory: 4656kb

input:

20
8136144 6408528 8054156
7239584 6536596 1012996
1884652 5391096 6567204
1480764 5442988 5704872
9999936 4999968 4999968
902772 5069412 6944400
4999968 902772 5069412
3611088 4999968 277776
6358573 6634433 717236
2110329 2013778 1558609
9737858 9999925 6634433
717236 6634433 6634433
8820735 572387...

output:

0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0

result:

ok 20 lines

Test #17:

score: 0
Accepted
time: 480ms
memory: 4400kb

input:

20
1479580 2551000 2499980
1479580 5408120 2499980
4999960 9999920 4999960
408160 5408120 4999960
1418208 6119592 6943616
4717024 1703128 4933672
8516320 2379048 9953024
6649448 9056784 2567000
6639370 1661665 8301033
6639370 8297389 8301033
1658021 6639370 1661665
8297389 6639370 1658021
8390964 71...

output:

1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1

result:

ok 20 lines

Test #18:

score: 0
Accepted
time: 469ms
memory: 4948kb

input:

20
7346880 3775480 2551000
408160 3775480 3775480
4999960 3775480 204080
4999960 9999920 4999960
1493307 3497157 3289248
8523972 9198432 4312377
9709335 6351264 6294204
6821208 8165214 7286535
3024672 1543200 1111104
4999968 5246880 246912
4444416 5246880 1543200
4999968 4999968 9999936
3773520 1886...

output:

1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1

result:

ok 20 lines

Test #19:

score: 0
Accepted
time: 552ms
memory: 4452kb

input:

20
2352936 2941170 9999978
6522477 1470585 8062266
9999978 4999989 4999989
1245672 4999989 1470585
816320 1326520 1734680
4999960 9999920 4999960
5306080 2653040 2653040
5306080 1020400 9999920
1592350 9745182 5222908
5222908 9999958 9745182
6369400 9745182 1592350
6369400 9745182 9999958
5103567 38...

output:

0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1

result:

ok 20 lines

Test #20:

score: 0
Accepted
time: 539ms
memory: 4796kb

input:

20
7799454 2234856 7068594
7469592 6119295 2577003
5131074 5574153 788268
9870705 8852376 4653597
5475555 487800 2695095
6158475 4938975 9999900
2756070 6890175 6890175
2756070 6890175 6890175
800000 400000 400000
5000000 10000000 5000000
5000000 6800000 1800000
6800000 400000 6400000
9999916 844587...

output:

0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0

result:

ok 20 lines

Test #21:

score: 0
Accepted
time: 576ms
memory: 4588kb

input:

20
8237460 1860180 7272027
4902072 8849757 8065575
3965220 5917359 3180429
3014466 9630789 9316083
7918794 5678634 9874566
2886624 5180292 7598136
4464798 1190046 4641780
1591902 1488552 2232360
5111680 7316092 1437660
5111680 4089344 5111680
5111680 5239472 1661296
3610124 1661296 9999724
10000000 ...

output:

0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0

result:

ok 20 lines

Test #22:

score: 0
Accepted
time: 657ms
memory: 4592kb

input:

20
1938141 7950042 2037501
9986301 2037501 7950042
1938141 7950042 9886941
9986301 9886941 7950042
8268288 8041242 2564520
9467202 6784944 8153346
7401474 5033406 4490748
9289506 9273174 3531036
1780818 4999989 890409
4999989 1780818 5821905
9999978 890409 5821905
9999978 4999989 4999989
9999909 269...

output:

1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0

result:

ok 20 lines

Test #23:

score: 0
Accepted
time: 492ms
memory: 4608kb

input:

20
2416104 6711400 9127504
1677850 9999986 9127504
1073824 604026 1677850
6711400 3288586 9999986
7352800 8602776 2720536
5974150 5974150 919100
919100 5974150 5974150
5441072 9999808 1911728
9392195 5013150 8219905
5548800 4903200 1000450
5186040 4242970 3048285
4759225 2184840 5285745
8648640 7837...

output:

1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0

result:

ok 20 lines

Test #24:

score: 0
Accepted
time: 415ms
memory: 4556kb

input:

20
5102000 9999920 3673440
9999920 5408120 8265240
5408120 2551000 9999920
5102000 9999920 6530560
5000000 5000000 10000000
3200000 5000000 8200000
8100000 200000 6500000
6500000 100000 8200000
4999968 4999968 9999936
9999936 2777760 2777760
694440 2777760 1249992
6249960 1249992 4999968
9999990 345...

output:

1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0

result:

ok 20 lines

Test #25:

score: 0
Accepted
time: 597ms
memory: 5616kb

input:

20
2461536 9999990 7538454
1384614 3846150 2461536
3846150 8923068 1384614
8923068 7538454 9999990
7123272 7260258 9999978
7123272 684930 3424650
7123272 684930 7260258
9999978 7123272 3424650
6512715 8851305 6485040
8758230 3115170 9438570
8690730 8032245 8359425
1004070 4133535 3833130
4226690 455...

output:

1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1

result:

ok 20 lines

Test #26:

score: 0
Accepted
time: 477ms
memory: 4284kb

input:

20
5408120 2040800 918360
9999920 2551000 5408120
4999960 9999920 4999960
2040800 1632640 408160
10000000 2000000 4000000
8000000 1000000 5000000
8000000 1000000 5000000
5000000 5000000 10000000
8005300 8476200 8005300
9002500 9418000 138500
8545450 9999700 124650
8005300 8005300 8476200
138888 3611...

output:

1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0

result:

ok 20 lines

Test #27:

score: 0
Accepted
time: 810ms
memory: 4924kb

input:

20
4062500 8562500 10000000
10000000 7062500 8562500
1125000 8562500 7062500
4062500 8562500 1125000
80000 5920000 5200000
10000000 5200000 5920000
4880000 5920000 80000
5920000 4880000 10000000
9717868 4645503 5521328
2311012 5378917 4137074
5021909 7490649 3000224
3284516 9148277 9904852
6249960 1...

output:

1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0

result:

ok 20 lines

Test #28:

score: 0
Accepted
time: 658ms
memory: 4596kb

input:

20
6697128 8053596 6626364
6595068 8455992 2604024
2944560 7228524 6327096
3293904 9652152 8723208
4999968 9999936 4999968
3950592 6975264 3024672
8950560 61728 9999936
246912 8950560 6975264
3340602 5873346 5676840
5698674 5676840 5873346
9192114 109170 9999972
5676840 5676840 349344
987648 9999936...

output:

0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0

result:

ok 20 lines

Test #29:

score: 0
Accepted
time: 564ms
memory: 4720kb

input:

20
4000000 4000000 8000000
2000000 4000000 10000000
6250000 8000000 4250000
4250000 6250000 8000000
9999900 3388855 8722135
1444430 8055475 8722135
8722135 1444430 3388855
8055475 8722135 9999900
3472200 4999968 8472168
4999968 9999936 4999968
8472168 7013844 69444
8402724 138888 7013844
5078125 382...

output:

0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1

result:

ok 20 lines

Test #30:

score: 0
Accepted
time: 517ms
memory: 4808kb

input:

20
4429593 9626788 5758165
4904957 9545943 6959708
6061466 7740834 9999227
3923639 3937370 4963055
555555 1888887 1999998
4999995 4999995 9999990
1888887 4999995 888888
5555550 9999990 2222220
5850721 1168921 4681802
4681802 5853781 5850721
1168921 4681802 1171981
1171981 4681802 5853781
5783446 690...

output:

0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0

result:

ok 20 lines

Test #31:

score: 0
Accepted
time: 624ms
memory: 5180kb

input:

20
8167204 2726396 7607640
8207368 5094088 7237940
1889236 7349680 6598032
6603544 5909552 958016
6210068 7765074 7760090
1550026 6210068 1555010
6210068 1555010 7765074
6210068 7760090 1550026
5429512 7620976 5462464
6599536 8481440 6328256
7162360 2183840 5749896
9404016 2898312 6519784
1250000 62...

output:

0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0

result:

ok 20 lines

Test #32:

score: 0
Accepted
time: 478ms
memory: 5748kb

input:

20
6523290 9097503 4079184
6827124 3909657 8150730
9359829 3267423 8627997
4426740 5483787 5447796
9999978 616437 8561625
136986 1712325 1164381
4999989 4999989 9999978
3561636 1712325 4999989
8234065 6194559 9058630
1121694 8650236 7664083
5065445 7707455 4411981
7179879 8934331 6849311
8622380 499...

output:

0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1

result:

ok 20 lines

Test #33:

score: 0
Accepted
time: 571ms
memory: 6040kb

input:

20
4900000 6500000 10000000
2000000 10000000 8000000
900000 6500000 8000000
10000000 2000000 8000000
1340196 2113386 4999962
4999962 9999924 4999962
3350490 9999924 2113386
4999962 3350490 1340196
1538460 3076920 1538460
1538460 1538460 3076920
3076920 9999990 6923070
6538455 6538455 6923070
7369375...

output:

1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1

result:

ok 20 lines

Test #34:

score: 0
Accepted
time: 519ms
memory: 4604kb

input:

20
5050000 5000000 50000
4050000 10000000 5050000
10000000 4050000 5050000
50000 5000000 5050000
3157376 2383608 2783496
1157736 9716360 8996032
9974976 1892728 9114840
9468728 7768808 3929312
9999900 9388795 55555
9999900 7999920 9999900
7999920 9999900 1999980
7999920 9388795 1388875
6192540 96655...

output:

1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0

result:

ok 20 lines

Test #35:

score: 0
Accepted
time: 596ms
memory: 5104kb

input:

20
5703125 9453125 10000000
3203125 781250 1328125
5078125 5078125 312500
312500 5078125 5078125
9999958 6624176 4140110
4140110 3694252 9999958
3694252 6178318 9999958
6624176 9999958 6178318
3400000 5000000 6400000
650000 1250000 3400000
400000 650000 1250000
5000000 10000000 5000000
9999990 70270...

output:

0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1

result:

ok 20 lines

Test #36:

score: 0
Accepted
time: 569ms
memory: 4360kb

input:

20
9127504 67114 9999986
5436234 7315426 9127504
3288586 9999986 6711400
7315426 604026 6711400
9999730 2113345 9082229
876265 6030765 5546242
3267953 3267953 6535906
3267953 3267953 6535906
2776952 6029980 7963024
3535344 5766468 6862516
9188688 7211432 8982368
7021980 4055432 8635460
2001039 79903...

output:

1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
1

result:

ok 20 lines

Test #37:

score: 0
Accepted
time: 483ms
memory: 5140kb

input:

20
1145400 5280294 4134894
4318158 9999342 3115488
4134894 5280294 1145400
1145400 7067118 9495366
5655130 4413760 8965450
68965 5586165 5655130
4413760 5586165 9999925
68965 9999925 8965450
4553812 1599988 1230760
7692250 7692250 9969156
3076900 7692250 7692250
615380 9999925 9999925
7200000 400000...

output:

0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1

result:

ok 20 lines

Test #38:

score: 0
Accepted
time: 561ms
memory: 4612kb

input:

20
5517200 841373 6579261
3048253 3048253 5517200
882752 7793045 9999925
5517200 2206880 5517200
6093648 3476682 7214220
7694730 8118792 4621698
6785964 1639044 7765416
9952164 3722814 9112608
4999968 9999936 4999968
493824 308640 61728
308640 3271584 3950592
4999968 3271584 6049344
1230768 9999990 ...

output:

0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0

result:

ok 20 lines

Test #39:

score: 0
Accepted
time: 535ms
memory: 4688kb

input:

20
9839013 7987003 9379770
2923212 5452881 7179769
5340680 9840181 9911721
4682074 3286387 1728129
2936340 7846553 1582361
4437136 5546420 5546420
4437136 5546420 5546420
81565 9999869 9559418
9999608 4938331 1741735
9118495 9118495 9917644
1331915 9118495 4098200
9384878 9118495 4938331
9999990 351...

output:

0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1

result:

ok 20 lines

Test #40:

score: -100
Wrong Answer
time: 623ms
memory: 4748kb

input:

20
1436448 1381200 55248
5524800 9999888 5580048
4475088 9999888 5524800
1381200 1436448 5580048
6450765 544815 6138891
7237605 3329589 6066864
4363101 5144037 7808493
4928364 2961654 4298961
9999925 7310290 620685
68965 5586165 5655130
1724125 7310290 5586165
5586165 9999925 5655130
268456 7315426 ...

output:

0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1

result:

wrong answer 1st lines differ - expected: '1', found: '0'