QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#211961#2174. Which Planet is This?!So_StuffyWA 2608ms157308kbC++203.0kb2023-10-13 01:57:242023-10-13 01:57:24

Judging History

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

  • [2023-10-13 01:57:24]
  • 评测
  • 测评结果:WA
  • 用时:2608ms
  • 内存:157308kb
  • [2023-10-13 01:57:24]
  • 提交

answer

#include <bits/stdc++.h>

using namespace std;

map < long long, long long > mp_N;
map < long long, set < long long > > mp1_N, mp2_N;

long double x, y;

long long n, a_N, b_N, prv_N, i, px_N;

long long md(long long a){
    return (long long)(a < 0 ? a + 360 * 1e4 : a) % (long long)(360 * 1e4);
}

int main(){
    cin >> n;

    for (i = 1; i <= n; i++){
        cin >> x >> y;
        y += 360;
        x *= 1e4;
        y *= 1e4;
        a_N = x + 0.5;
        b_N = y + 0.5;
        mp1_N[md(a_N)].insert(md(b_N));
    }

    for (i = 1; i <= n; i++){
        cin >> x >> y;
        y += 360;
        x *= 1e4;
        y *= 1e4;
        a_N = x + 0.5;
        b_N = y + 0.5;
        mp2_N[md(a_N)].insert(md(b_N));
    }

    px_N = -1e10;
    for (auto r : mp1_N){
        if (mp2_N[r.first].size() != r.second.size()){
            cout << "Different\n";
            return 0;
        }
        prv_N = -1e10;
        for (auto x : r.second){
            if (prv_N != -1e10){
                mp_N[md(x - prv_N)]++;
            }
            prv_N = x;
        }
        mp_N[md(*r.second.begin() - *r.second.rbegin())]++;

        prv_N = -1e10;
        for (auto x : mp2_N[r.first]){
            if (prv_N != -1e10){
                mp_N[md(x - prv_N)]--;
                if (mp_N[md(x - prv_N)] < 0){
                    cout << "Different1\n";
                    return 0;
                }
            }
            prv_N = x;
        }
        mp_N[md(*mp2_N[r.first].begin() - *mp2_N[r.first].rbegin())]--;
        if (mp_N[md(*mp2_N[r.first].begin() - *mp2_N[r.first].rbegin())] < 0){
            cout << "Different1\n";
            return 0;
        }

        if (px_N != -1e10){
            for (auto x : mp1_N[r.first]){
                auto it = mp1_N[px_N].lower_bound(x);
                if (it == mp1_N[px_N].end()) it = mp1_N[px_N].begin();
                mp_N[md(x - *it)]++;
            }
            for (auto x : mp2_N[r.first]){
                auto it = mp2_N[px_N].lower_bound(x);
                if (it == mp2_N[px_N].end()) it = mp2_N[px_N].begin();
                mp_N[md(x - *it)]--;
                if (mp_N[md(x - *it)] < 0){
                    cout << "Different\n";
                    return 0;
                }
            }

            for (auto x : mp1_N[px_N]){
                auto it = mp1_N[r.first].lower_bound(x);
                if (it == mp1_N[r.first].end()) it = mp1_N[r.first].begin();
                mp_N[md(x - *it)]++;
            }
            for (auto x : mp2_N[px_N]){
                auto it = mp2_N[r.first].lower_bound(x);
                if (it == mp2_N[r.first].end()) it = mp2_N[r.first].begin();
                mp_N[md(x - *it)]--;
                if (mp_N[md(x - *it)] < 0){
                    cout << "Different\n";
                    return 0;
                }
            }
        }
        px_N = r.first;
    }

    cout << "Same\n";
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

3
10 0
20 40
30 -15
40 -15
20 0
30 40

output:

Different

result:

ok single line: 'Different'

Test #2:

score: 0
Accepted
time: 831ms
memory: 54632kb

input:

359998
-0.0045 96.8638
-0.0045 -79.2284
-0.0045 -50.4113
-0.0045 -79.0394
-0.0045 -24.9710
-0.0045 -142.9880
-0.0045 50.6344
-0.0045 125.9464
-0.0045 -17.3039
-0.0045 42.3454
-0.0045 130.6138
-0.0045 -106.4363
-0.0045 -95.9378
-0.0045 90.7312
-0.0045 75.7615
-0.0045 -66.9785
-0.0045 -81.0752
-0.0045...

output:

Same

result:

ok single line: 'Same'

Test #3:

score: 0
Accepted
time: 777ms
memory: 46020kb

input:

299998
-0.0045 -42.0335
-0.0045 -106.8631
-0.0045 176.8211
-0.0045 100.6703
-0.0045 168.0453
-0.0045 -100.7977
-0.0045 -31.7881
-0.0045 -43.3799
-0.0045 -87.3392
-0.0045 30.4474
-0.0045 -7.4550
-0.0045 106.5476
-0.0045 -3.9185
-0.0045 -56.8153
-0.0045 -146.7755
-0.0045 -76.6043
-0.0045 57.1774
-0.00...

output:

Same

result:

ok single line: 'Same'

Test #4:

score: 0
Accepted
time: 2608ms
memory: 145644kb

input:

400000
-57.6217 51.8207
-66.4301 79.8153
68.6538 169.5723
-48.0781 -6.6298
-6.7822 -17.1276
-39.4009 179.3474
63.3867 -77.7996
61.0296 23.9060
-45.3758 41.1641
70.4582 129.4273
-29.7325 -35.5175
-15.3621 31.2737
-23.1798 102.5020
80.7571 -132.1432
-48.3888 -6.5756
18.4703 135.7623
-0.8199 -65.5536
-...

output:

Same

result:

ok single line: 'Same'

Test #5:

score: 0
Accepted
time: 2578ms
memory: 157308kb

input:

400000
68.6612 125.2502
-34.0056 -176.1203
5.5683 107.6629
-69.2218 30.3923
-17.2214 70.1128
56.9568 -148.7878
-23.9078 -171.1107
-65.9309 -18.4715
12.6709 95.8959
-66.6852 142.6653
-26.4513 106.4433
-79.1698 -119.5633
66.7118 128.2842
-16.2637 139.1541
79.5323 15.2026
70.8686 19.2645
-73.8376 114.2...

output:

Same

result:

ok single line: 'Same'

Test #6:

score: -100
Wrong Answer
time: 1ms
memory: 3944kb

input:

18
2 0
2 1
3 2
6 -118
2 5
2 120
2 121
2 -119
4 122
5 123
4 3
2 4
2 124
2 125
2 -120
7 -117
2 -116
2 -115
2 0
2 1
2 121
6 122
3 2
2 120
7 123
4 3
2 4
2 124
4 -118
2 125
2 -120
2 -119
5 -117
2 5
2 -116
2 -115

output:

Different1

result:

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