QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#533275#8708. Portalmakrav#1 15ms9924kbC++202.2kb2024-08-25 19:32:462024-08-25 19:32:46

Judging History

This is the latest submission verdict.

  • [2024-08-25 19:32:46]
  • Judged
  • Verdict: 1
  • Time: 15ms
  • Memory: 9924kb
  • [2024-08-25 19:32:46]
  • 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 dry = gcd(v[0].first, v[1].first), drx = gcd(v[1].second, v[0].second);
    assert(cdx / dry == cdy / drx);
    cout << cdx + cdy - (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: 3588kb

input:

1
1 -1

output:

-1

result:

ok single line: '-1'

Test #2:

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

input:

2
-455833 -283524
427847 159281

output:

-1

result:

ok single line: '-1'

Test #3:

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

input:

2
52420 -46322
-192914 87067

output:

-1

result:

ok single line: '-1'

Test #4:

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

input:

2
52446 -20773
179773 174566

output:

-1

result:

ok single line: '-1'

Test #5:

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

input:

2
-229012 -260770
-174790 -69382

output:

-1

result:

ok single line: '-1'

Test #6:

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

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: 3820kb

input:

2
-90088 -7423
234488 19625

output:

-1

result:

ok single line: '-1'

Test #9:

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

input:

2
-48105 256695
15135 -80585

output:

-1

result:

ok single line: '-1'

Test #10:

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

input:

2
-251318 79061
182792 -129183

output:

-1

result:

ok single line: '-1'

Test #11:

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

input:

2
784850 417677
-217245 -460999

output:

-1

result:

ok single line: '-1'

Test #12:

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

input:

2
31270 410692
713271 917276

output:

-1

result:

ok single line: '-1'

Test #13:

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

input:

1
230862 -785444

output:

-1

result:

ok single line: '-1'

Test #14:

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

input:

2
222814 -279784
-73657 59849

output:

-1

result:

ok single line: '-1'

Test #15:

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

input:

2
72171 -104186
201480 105502

output:

-1

result:

ok single line: '-1'

Test #16:

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

input:

2
-17727 -27151
69235 15029

output:

-1

result:

ok single line: '-1'

Test #17:

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

input:

2
-44049 96618
173806 -21489

output:

-1

result:

ok single line: '-1'

Test #18:

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

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: 10
Accepted
time: 0ms
memory: 3524kb

input:

3
1 1
1 3
3 2

output:

4

result:

ok single line: '4'

Test #20:

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

input:

3
123741 -122828
207774 110184
-33847 97305

output:

55218331445

result:

ok single line: '55218331445'

Test #21:

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

input:

3
-66381 27989
200580 40286
300930 -238824

output:

75745488660

result:

ok single line: '75745488660'

Test #22:

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

input:

3
-212612 305891
-228367 216399
56731 149417

output:

26569291626

result:

ok single line: '26569291626'

Test #23:

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

input:

3
58252 388020
34720 -409605
79321 85296

output:

9748795749

result:

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

Subtask #3:

score: 0
Wrong Answer

Test #40:

score: 0
Wrong Answer
time: 15ms
memory: 9924kb

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:

822257260

result:

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

Subtask #4:

score: 0
Wrong Answer

Test #59:

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

input:

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

output:

1

result:

ok single line: '1'

Test #60:

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

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:

411

result:

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

Subtask #5:

score: 0
Skipped

Dependency #2:

0%

Subtask #6:

score: 0
Skipped

Dependency #1:

100%
Accepted

Dependency #2:

0%