QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#766140#692. Delete the Pointspan_gWA 2ms4092kbC++202.1kb2024-11-20 16:21:482024-11-20 16:21:50

Judging History

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

  • [2024-11-20 16:21:50]
  • 评测
  • 测评结果:WA
  • 用时:2ms
  • 内存:4092kb
  • [2024-11-20 16:21:48]
  • 提交

answer

#include <bits/stdc++.h>
#define endl "\n"
typedef long long i64;
typedef double lb;

signed main(){
    std::cin.tie(nullptr) -> sync_with_stdio(false);
    int n;
    std::cin >> n;
    std::cout << "Yes" << endl;
    std::map<int, std::vector<int> > mp;
    for(int i = 0, x, y;i < n;i++){
        std::cin >> x >> y;
        mp[x].emplace_back(y);
    }

    std::cout << std::fixed << std::setprecision(3);
    int tx = -1, ty = -1;
    
    auto delete_with_t = [&](int x, int y) -> void {
        int len = std::max(std::abs(x - tx), std::abs(y - ty));
        int r = std::max(ty, y);
        std::cout << x - len << ' ' << r - len << ' ' << x << ' ' << r << endl;
        tx = ty = -1;
    };

    auto delete_pair = [&](int x, int sy, int by) -> void {
        lb y = x - (by - sy);
        std::cout << y << ' ' << sy << ' ' << x << ' ' << by << endl;
    };
    
    for(auto &[x, f] : mp){
        sort(f.begin(), f.end());
        int i = 0, m = f.size();
        if(tx == -1){
            for(;i + 1 < m;i += 2) delete_pair(x, f[i], f[i + 1]);
            if(m & 1) tx = x, ty = f.back();
        }
        else{
            for(;i + 1 < m && f[i + 1] < ty;i += 2) delete_pair(x, f[i], f[i + 1]);

            if(i < m && f[i] <= ty){
                int delx = (lb)x - tx;
                int dely = ty - f[i];
                if(i == m - 1 || f[i + 1] > ty){
                    delete_with_t(x, f[i]);
                    i ++;
                }
                else{
                    if(delx > dely){
                        delete_pair(x, f[i], f[i + 1]);
                        i += 2;
                    }
                    else{
                        delete_with_t(x, f[i]);
                        i ++;
                    }
                }
            }
            if(tx >= 0 && i < m){
                delete_with_t(x, f[i]);
                i ++;
            }

            for(;i + 1 < m;i += 2) delete_pair(x, f[i], f[i + 1]);
            if(i == m - 1) tx = x, ty = f.back();
        }
    }

    return 0;
}

詳細信息

Test #1:

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

input:

4
1 1
2 2
5 5
6 6

output:

Yes
1 1 2 2
5 5 6 6

result:

ok OK

Test #2:

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

input:

4
0 0
1 2
2 1
4 4

output:

Yes
-1 0 1 2
1 1 4 4

result:

ok OK

Test #3:

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

input:

4
1 2
3 2
2 1
2 3

output:

Yes
1 1 2 2
2 2 3 3

result:

ok OK

Test #4:

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

input:

6
12 9
1 5
10 14
20 14
15 4
7 9

output:

Yes
1 3 7 9
7 9 12 14
10 4 20 14

result:

ok OK

Test #5:

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

input:

10
39 72
59 52
23 17
2 31
30 0
25 88
2 36
61 23
4 96
59 76

output:

Yes
-3.000 31 2 36
-56 17 23 96
-58 0 30 88
39 52 59 72
8 23 61 76

result:

ok OK

Test #6:

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

input:

10
53 95
37 51
84 11
3 39
31 20
37 84
42 27
95 38
6 6
16 19

output:

Yes
-27 6 6 39
16 5 31 20
4.000 51 37 84
-15 27 53 95
68 11 95 38

result:

ok OK

Test #7:

score: -100
Wrong Answer
time: 2ms
memory: 4092kb

input:

3000
997371332 135791687
997371332 135791686
997371332 135791685
997371333 135791685
997371333 135791687
997371334 135791687
997371333 135791688
997371331 135791686
997371333 135791689
997371334 135791686
997371334 135791689
997371333 135791684
997371332 135791689
997371331 135791685
997371334 13579...

output:

Yes
997371303.000 135791684 997371304 135791685
997371303 135791708 997371304 135791709
997371304.000 135791685 997371305 135791686
997371301.000 135791694 997371305 135791698
997371304.000 135791707 997371305 135791708
997371304 135791708 997371305 135791709
997371305.000 135791684 997371306 135791...

result:

wrong answer We have 3 point(s) in query 1