QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#533301#8708. Portalmakrav#11 16ms9624kbC++202.6kb2024-08-25 19:56:002024-08-25 19:56:00

Judging History

This is the latest submission verdict.

  • [2024-08-25 19:56:00]
  • Judged
  • Verdict: 11
  • Time: 16ms
  • Memory: 9624kb
  • [2024-08-25 19:56:00]
  • Submitted

answer

#include <bits/stdc++.h>

using namespace std;
using ll = long long;

#define int ll
#define pb push_back

int gcd(int x, int y) {
    x = abs(x); y = abs(y);
    while (x) {
        y %= x;
        swap(x, y);
    }
    return y;
}

void solve() {
    int n; cin >> n;
    vector<pair<int, int>> a(n);
    for (int i = 0; i < n; i++) cin >> a[i].first >> a[i].second;
    vector<pair<int, int>> v;
    for (int i = 1; i < n; i++) {
        v.pb({a[i].first - a[0].first, a[i].second - a[0].second});
    }
    bool line = true;
    for (int i = 2; i < n; i++) {
        if ((a[i].first - a[0].first) * (a[1].second - a[0].second) - (a[i].second - a[0].second) * (a[1].first - a[0].first) != 0) line = false;
    }
    if (line) {
        cout << "-1\n";
        return;
    }
    vector<pair<int, int>> newv = {v[0]};
    for (int i = 1; i < n - 1; i++) {
        if (v[i].first * v[0].second - v[i].second * v[0].first != 0) {
            newv.pb(v[i]);
            for (int j = 1; j < n; j++) {
                if (j != i) newv.pb(v[j]);
            }
            break;
        }
    }
    swap(v, newv);
    int cdx, cdy;
    if (v[0].first == 0) {
        cdy = abs(v[0].second);
    } else if (v[1].first == 0) {
        cdy = abs(v[1].second);
    } else {
        cdy = abs(v[0].second * (v[1].first / gcd(v[1].first, v[0].first)) - v[1].second * (v[0].first / gcd(v[1].first, v[0].first)));
    }

    if (v[0].second == 0) {
        cdx = abs(v[0].first);
    } else if (v[1].second == 0) {
        cdx = abs(v[1].first);
    } else {
        cdx = abs(v[0].first * (v[1].second / gcd(v[1].second, v[0].second)) - v[1].first * (v[0].second / gcd(v[1].second, v[0].second)));
    }
    
    int drx = gcd(v[0].first, v[1].first), dry = gcd(v[1].second, v[0].second);
    for (int i = 2; i < n - 1; i++) {
        int ndrx = cdx * dry / cdy;
        int ndry = cdy * drx / cdx;
        int lolx = v[i].first * dry - ndrx * v[i].second;
        int loly = v[i].second * drx - ndry * v[i].first;

        cdx = gcd(cdx, lolx);
        cdy = gcd(cdy, loly);
        drx = gcd(drx, v[i].first);
        dry = gcd(dry, v[i].second);
        // ndrx - delta of x values of neighbour rows (by y)
        // ndry - delta of y values of neighbour columns

    }   
    cout << drx * dry << '\n';
    //cout << cdx * dry << '\n';
}

signed main() {
    int tt = 1;
    #ifdef LOCAL
        freopen("in.txt", "r", stdin);
        freopen("out.txt", "w", stdout);
        cin >> tt;
    #else 
        ios::sync_with_stdio(false); cin.tie(0);
    #endif

    while (tt--) {
        solve();
    }
}

詳細信息

Subtask #1:

score: 1
Accepted

Test #1:

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

input:

1
1 -1

output:

-1

result:

ok single line: '-1'

Test #2:

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

input:

2
-455833 -283524
427847 159281

output:

-1

result:

ok single line: '-1'

Test #3:

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

input:

2
52420 -46322
-192914 87067

output:

-1

result:

ok single line: '-1'

Test #4:

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

input:

2
52446 -20773
179773 174566

output:

-1

result:

ok single line: '-1'

Test #5:

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

input:

2
-229012 -260770
-174790 -69382

output:

-1

result:

ok single line: '-1'

Test #6:

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

input:

2
-127294 418312
211124 37002

output:

-1

result:

ok single line: '-1'

Test #7:

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

input:

2
-129173 516840
46821 -187136

output:

-1

result:

ok single line: '-1'

Test #8:

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

input:

2
-90088 -7423
234488 19625

output:

-1

result:

ok single line: '-1'

Test #9:

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

input:

2
-48105 256695
15135 -80585

output:

-1

result:

ok single line: '-1'

Test #10:

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

input:

2
-251318 79061
182792 -129183

output:

-1

result:

ok single line: '-1'

Test #11:

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

input:

2
784850 417677
-217245 -460999

output:

-1

result:

ok single line: '-1'

Test #12:

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

input:

2
31270 410692
713271 917276

output:

-1

result:

ok single line: '-1'

Test #13:

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

input:

1
230862 -785444

output:

-1

result:

ok single line: '-1'

Test #14:

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

input:

2
222814 -279784
-73657 59849

output:

-1

result:

ok single line: '-1'

Test #15:

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

input:

2
72171 -104186
201480 105502

output:

-1

result:

ok single line: '-1'

Test #16:

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

input:

2
-17727 -27151
69235 15029

output:

-1

result:

ok single line: '-1'

Test #17:

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

input:

2
-44049 96618
173806 -21489

output:

-1

result:

ok single line: '-1'

Test #18:

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

input:

2
-81268 -53452
329866 -163275

output:

-1

result:

ok single line: '-1'

Subtask #2:

score: 0
Wrong Answer

Dependency #1:

100%
Accepted

Test #19:

score: 0
Wrong Answer
time: 0ms
memory: 3848kb

input:

3
1 1
1 3
3 2

output:

2

result:

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

Subtask #3:

score: 10
Accepted

Test #40:

score: 10
Accepted
time: 9ms
memory: 9440kb

input:

99840
-359536 735499
-710626 400619
-468266 -282389
-192706 43659
204034 -543669
-100576 -749013
-118006 -283125
-341276 405771
560934 835595
-923936 506603
239724 956299
-680746 -737237
286204 982795
-847576 -282389
-949666 986475
996684 -429589
672984 -133717
140954 696491
-879116 -442837
985064 7...

output:

610880

result:

ok single line: '610880'

Test #41:

score: 10
Accepted
time: 11ms
memory: 9384kb

input:

99680
231534 501002
-604126 79487
-337934 -601948
-869810 434312
-819518 524087
598310 79487
161938 -480538
463182 827612
233566 807092
-51422 666872
155334 -561763
-819518 -419833
290970 947312
-679818 -16273
804558 435167
-387210 223982
161938 223982
35954 373607
-854570 -459163
831482 771182
5251...

output:

434340

result:

ok single line: '434340'

Test #42:

score: 10
Accepted
time: 15ms
memory: 9536kb

input:

99940
-366859 734803
-722883 -352755
266497 350263
892977 -547983
229061 -550941
-253023 -216687
187041 219125
907493 920171
445273 133343
965557 991163
102237 -66815
434577 732831
239757 -263029
-746567 -527277
-350051 879745
-943679 -528263
-928399 -528263
-867279 66295
-696907 -722505
-247675 465...

output:

753304

result:

ok single line: '753304'

Test #43:

score: 10
Accepted
time: 12ms
memory: 9360kb

input:

99940
629940 252040
422661 -727640
847455 297570
-129230 -330430
-539523 962465
267415 639045
-230737 382350
626528 -730
-940433 -799860
-667473 962465
-941286 675155
-880723 467915
727182 -864230
-936168 -94145
608615 697135
-668326 -963925
-947257 201800
-84021 -386950
-882429 735600
-606057 83922...

output:

669605

result:

ok single line: '669605'

Test #44:

score: 10
Accepted
time: 7ms
memory: 9340kb

input:

99831
758237 -429818
616877 504517
482027 -525398
-877633 -183173
773117 659227
89567 -748958
-14593 -305483
-586543 960547
41207 979582
-300103 -4568
493187 778297
-778123 229522
-338233 -273488
96077 -235823
462497 218992
752657 -429818
41207 188617
419717 389902
-245233 478597
878207 229522
-6655...

output:

376650

result:

ok single line: '376650'

Test #45:

score: 10
Accepted
time: 12ms
memory: 6988kb

input:

100000
-185103 330730
640566 330730
-197028 330730
-296469 330730
950535 330730
-436833 330730
-331893 330730
-130545 330730
236349 330730
-462267 330730
-796788 330730
782343 330730
977130 330730
210285 330730
-99909 330730
979830 330730
206793 330730
346842 330730
591111 330730
444690 330730
96783...

output:

-1

result:

ok single line: '-1'

Test #46:

score: 10
Accepted
time: 13ms
memory: 6732kb

input:

100000
897386 -498167
294216 -498167
-416934 -498167
407176 -498167
423246 -498167
-806934 -498167
-106964 -498167
185376 -498167
-17724 -498167
83516 -498167
481156 -498167
795446 -498167
134076 -498167
-338814 -498167
279526 -498167
970276 -498167
844856 -498167
-37134 -498167
-430634 -498167
-954...

output:

-1

result:

ok single line: '-1'

Test #47:

score: 10
Accepted
time: 8ms
memory: 6756kb

input:

100000
302722 467192
-710129 467192
735336 467192
-255381 467192
-822213 467192
-158389 467192
-193270 467192
358540 467192
-219100 467192
558733 467192
-507675 467192
-695590 467192
-409213 467192
-714518 467192
336567 467192
-533925 467192
-773689 467192
-968688 467192
62384 467192
876526 467192
6...

output:

-1

result:

ok single line: '-1'

Test #48:

score: 10
Accepted
time: 14ms
memory: 9380kb

input:

100000
672106 221171
672106 883430
672106 288290
672106 -658799
141374 -131948
141374 158602
141374 309649
141374 650353
141374 642956
141374 -768194
141374 -718417
672106 249667
672106 784734
141374 470511
141374 98035
672106 998389
672106 352965
141374 898640
672106 -536287
672106 -578615
141374 -...

output:

6899516

result:

ok single line: '6899516'

Test #49:

score: 10
Accepted
time: 14ms
memory: 9432kb

input:

100000
-816116 922009
315232 922009
-249356 922009
610000 949351
490680 949351
582100 949351
292220 922009
-987840 949351
595672 922009
-937660 922009
254856 922009
-13192 949351
583064 922009
-350928 922009
-646536 949351
-965832 922009
-193972 949351
-725520 922009
-820104 922009
315472 949351
670...

output:

109368

result:

ok single line: '109368'

Test #50:

score: 10
Accepted
time: 15ms
memory: 9624kb

input:

100000
-400087 361704
168413 -522429
259093 -522429
-133567 361704
-63837 -522429
507753 -522429
327713 361704
-564507 361704
-367307 361704
-783337 361704
-9157 -522429
-827827 -522429
725203 361704
414713 -522429
-125927 361704
877363 361704
812293 361704
-537707 -522429
910523 361704
634733 -5224...

output:

8841330

result:

ok single line: '8841330'

Test #51:

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

input:

1
393683 -129821

output:

-1

result:

ok single line: '-1'

Test #52:

score: 10
Accepted
time: 11ms
memory: 9580kb

input:

99540
40621 884068
577951 239764
-786692 884068
-889682 -915438
820492 -309724
-618176 881224
-464684 -8446
-336083 -615316
-278327 918718
773440 -147292
100609 -406310
594181 -347808
71233 39452
374938 -406310
498904 -276194
877597 797536
259045 305700
853963 605276
-670709 615112
-336083 784766
11...

output:

6

result:

ok single line: '6'

Test #53:

score: 10
Accepted
time: 15ms
memory: 9544kb

input:

99802
605960 -462294
118320 -783465
993870 91908
-864144 -429162
324342 290253
123132 695739
-723136 -925983
-762138 -997044
-580284 -224673
-955872 150849
552280 -842922
993870 -496248
882382 -536550
748448 -118500
936372 -155847
486570 -92055
-545100 -168126
865686 -500748
-362208 740640
-133172 -...

output:

6

result:

ok single line: '6'

Test #54:

score: 10
Accepted
time: 12ms
memory: 9608kb

input:

99969
-999614 -981865
648284 413937
-434763 -919276
739858 -950234
320831 -321652
98406 637373
579061 -919276
-744205 -203204
863982 385671
-35049 -919276
-998529 913303
-742903 413937
620942 -244930
-97328 59939
-256172 769281
710997 -713338
-254653 202615
508970 -919276
289800 -197147
745066 -1971...

output:

146041

result:

ok single line: '146041'

Test #55:

score: 10
Accepted
time: 16ms
memory: 9360kb

input:

99944
-998018 -997121
573972 520015
-31738 362215
409752 82831
-583898 -594737
-470848 738151
967267 -565553
140217 -256889
906577 -296009
-564858 -340937
562667 -389249
156877 82831
-226898 352183
822087 631591
955367 -429545
975597 951175
488887 152239
-188818 502783
-813568 -943457
236012 240223
...

output:

14280

result:

ok single line: '14280'

Test #56:

score: 10
Accepted
time: 15ms
memory: 9588kb

input:

99960
-997576 -997846
-800914 304194
-415036 522634
14204 507584
-409780 -266416
-351088 449964
-613012 694204
-408904 -225996
656750 247434
879254 -651266
-186838 949194
-788212 928984
616454 -118496
76400 752684
-226258 683884
-351088 -997846
-630532 16524
60194 -904106
-925306 973274
-398830 -615...

output:

188340

result:

ok single line: '188340'

Test #57:

score: 10
Accepted
time: 7ms
memory: 9296kb

input:

99544
-995276 -991700
-297341 -757684
333499 596428
334024 13092
-506186 893492
527434 -872988
-69176 536220
-191606 -596940
-36836 998004
816394 416372
133159 -684980
550009 -991700
281734 249380
-114851 -523100
-607931 787276
595999 248812
-872741 -527644
-739811 -831524
-309731 -680436
-401711 19...

output:

59640

result:

ok single line: '59640'

Test #58:

score: 10
Accepted
time: 11ms
memory: 9440kb

input:

99864
-990863 -998600
754487 300100
-154703 630880
377277 73660
-254533 -566255
-555363 -202175
467727 -607880
425517 -842645
-816663 -465800
-555363 331735
-475633 -4595
67737 436630
-255873 -455810
688827 -939770
-795893 -924785
665377 212410
-282003 73660
-818003 431635
67067 891730
-826043 -3353...

output:

371850

result:

ok single line: '371850'

Subtask #4:

score: 0
Wrong Answer

Test #59:

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

input:

5
0 0
1 0
-1 0
0 1
0 -1

output:

1

result:

ok single line: '1'

Test #60:

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

input:

100
-30 -13
-22 -19
32 9
-18 -11
50 19
16 5
-50 -17
-46 -21
10 -1
-56 -19
2 -11
-24 -15
-4 -11
-8 -11
4 7
-8 -5
34 9
18 7
20 1
-12 -11
-30 -23
-42 -13
-24 -3
16 11
-16 -7
-24 -21
2 -9
28 11
6 -9
-22 -11
4 -7
28 7
-36 -15
-20 -21
4 11
-8 5
20 5
30 21
58 19
4 -1
-46 -19
-6 3
2 11
46 15
18 -1
-24 -7
-2...

output:

4

result:

ok single line: '4'

Test #61:

score: 0
Wrong Answer
time: 0ms
memory: 3560kb

input:

100
66 27
38 -18
-39 -35
-4 9
-18 -24
24 26
17 6
-4 -26
-46 -6
52 1
17 -15
73 26
31 -10
-46 -27
-4 23
17 -29
-74 -37
-11 -39
-4 2
-11 10
3 -34
3 -41
-39 0
10 -14
31 -3
-18 -10
-25 -30
10 0
-53 -33
-18 -31
38 31
10 -35
24 5
52 22
-60 -32
-11 -32
17 13
-81 -36
3 29
-18 -45
-67 -31
45 23
31 -17
45 30
-...

output:

7

result:

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

Subtask #5:

score: 0
Skipped

Dependency #2:

0%

Subtask #6:

score: 0
Skipped

Dependency #1:

100%
Accepted

Dependency #2:

0%