Submission #811000

# Submission time Handle Problem Language Result Execution time Memory
811000 2023-08-06T19:23:50 Z treewave Building Skyscrapers (CEOI19_skyscrapers) C++17
54 / 100
401 ms 32044 KB
#include <bits/stdc++.h>

using namespace std;

int dx[8] = {0, 0, -1, 1, 1, 1, -1, -1};
int dy[8] = {1, -1, 0, 0, 1, -1, 1, -1};

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    int n, t; cin >> n >> t;
    vector<array<int, 2>> points;
    set<array<int, 3>> points_set;
    map<array<int, 2>, int> pt_to_idx;
    for (int i = 0; i < n; i++){
        int x, y; cin >> x >> y;
        points.push_back({x, y});
        points_set.insert({x, y, i});
        pt_to_idx[{x, y}] = i;
    }
    set<array<int, 2>> visited;
    vector<int> ans;
    array<int, 3> tp = *points_set.begin();
    visited.insert({tp[0], tp[1]});
    ans.push_back(tp[2]);
    points_set.erase(points_set.begin());
    set<array<int, 3>> poss;

    for (int d = 0; d < 8; d++){
        if (pt_to_idx.count({tp[0]+dx[d], tp[1]+dy[d]})){
            poss.insert({tp[0]+dx[d], tp[1]+dy[d], pt_to_idx[{tp[0]+dx[d], tp[1]+dy[d]}]});
            visited.insert({tp[0]+dx[d], tp[1]+dy[d]});
        }
    }

    while (!poss.empty()){
        tp = *poss.begin();
        poss.erase(poss.begin());
        ans.push_back(tp[2]);
        for (int d = 0; d < 8; d++){
            array<int, 2> new_pt = {tp[0] + dx[d], tp[1] + dy[d]};
            if (pt_to_idx.count(new_pt)){
                if (!visited.count(new_pt)){
                    visited.insert(new_pt);
                    poss.insert({new_pt[0], new_pt[1], pt_to_idx[new_pt]});
                }
            }
        }
    }
    if (ans.size() == n){
        cout << "YES\n";
        for (int i = 0; i < n; i++){
            cout << ans[i]+1 << "\n";
        }
    }
    else{
        cout << "NO\n";
    }
}

Compilation message

skyscrapers.cpp: In function 'int main()':
skyscrapers.cpp:51:20: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   51 |     if (ans.size() == n){
      |         ~~~~~~~~~~~^~~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB ans=YES N=1
2 Correct 1 ms 212 KB ans=YES N=4
3 Correct 0 ms 212 KB ans=NO N=4
4 Correct 0 ms 212 KB ans=YES N=5
5 Correct 0 ms 212 KB ans=YES N=9
6 Correct 1 ms 212 KB ans=YES N=5
7 Correct 1 ms 212 KB ans=NO N=9
8 Correct 1 ms 320 KB ans=NO N=10
9 Correct 0 ms 212 KB ans=YES N=10
10 Correct 1 ms 324 KB ans=YES N=10
11 Correct 1 ms 212 KB ans=YES N=10
12 Correct 1 ms 212 KB ans=YES N=9
13 Correct 0 ms 212 KB ans=YES N=9
14 Correct 0 ms 212 KB ans=YES N=8
15 Correct 0 ms 212 KB ans=YES N=8
16 Correct 0 ms 212 KB ans=NO N=2
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB ans=YES N=1
2 Correct 1 ms 212 KB ans=YES N=4
3 Correct 0 ms 212 KB ans=NO N=4
4 Correct 0 ms 212 KB ans=YES N=5
5 Correct 0 ms 212 KB ans=YES N=9
6 Correct 1 ms 212 KB ans=YES N=5
7 Correct 1 ms 212 KB ans=NO N=9
8 Correct 1 ms 320 KB ans=NO N=10
9 Correct 0 ms 212 KB ans=YES N=10
10 Correct 1 ms 324 KB ans=YES N=10
11 Correct 1 ms 212 KB ans=YES N=10
12 Correct 1 ms 212 KB ans=YES N=9
13 Correct 0 ms 212 KB ans=YES N=9
14 Correct 0 ms 212 KB ans=YES N=8
15 Correct 0 ms 212 KB ans=YES N=8
16 Correct 0 ms 212 KB ans=NO N=2
17 Correct 1 ms 320 KB ans=YES N=17
18 Correct 1 ms 212 KB ans=YES N=25
19 Correct 1 ms 340 KB ans=YES N=100
20 Correct 1 ms 340 KB ans=YES N=185
21 Correct 0 ms 340 KB ans=NO N=174
22 Correct 1 ms 212 KB ans=YES N=90
23 Correct 0 ms 212 KB ans=YES N=63
24 Correct 1 ms 340 KB ans=YES N=87
25 Correct 1 ms 316 KB ans=YES N=183
26 Correct 1 ms 340 KB ans=YES N=188
27 Correct 1 ms 340 KB ans=YES N=183
28 Correct 1 ms 340 KB ans=YES N=189
29 Correct 1 ms 340 KB ans=YES N=200
30 Correct 1 ms 340 KB ans=YES N=190
31 Correct 1 ms 340 KB ans=YES N=187
32 Correct 1 ms 340 KB ans=YES N=187
33 Correct 1 ms 340 KB ans=YES N=182
34 Correct 1 ms 340 KB ans=YES N=184
35 Correct 1 ms 340 KB ans=YES N=188
36 Correct 1 ms 340 KB ans=YES N=181
37 Correct 1 ms 340 KB ans=YES N=188
38 Correct 1 ms 340 KB ans=YES N=191
39 Correct 1 ms 340 KB ans=YES N=196
40 Correct 1 ms 340 KB ans=YES N=196
41 Correct 1 ms 340 KB ans=YES N=196
42 Correct 1 ms 340 KB ans=YES N=196
43 Correct 1 ms 340 KB ans=YES N=195
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB ans=YES N=1
2 Correct 1 ms 212 KB ans=YES N=4
3 Correct 0 ms 212 KB ans=NO N=4
4 Correct 0 ms 212 KB ans=YES N=5
5 Correct 0 ms 212 KB ans=YES N=9
6 Correct 1 ms 212 KB ans=YES N=5
7 Correct 1 ms 212 KB ans=NO N=9
8 Correct 1 ms 320 KB ans=NO N=10
9 Correct 0 ms 212 KB ans=YES N=10
10 Correct 1 ms 324 KB ans=YES N=10
11 Correct 1 ms 212 KB ans=YES N=10
12 Correct 1 ms 212 KB ans=YES N=9
13 Correct 0 ms 212 KB ans=YES N=9
14 Correct 0 ms 212 KB ans=YES N=8
15 Correct 0 ms 212 KB ans=YES N=8
16 Correct 0 ms 212 KB ans=NO N=2
17 Correct 1 ms 320 KB ans=YES N=17
18 Correct 1 ms 212 KB ans=YES N=25
19 Correct 1 ms 340 KB ans=YES N=100
20 Correct 1 ms 340 KB ans=YES N=185
21 Correct 0 ms 340 KB ans=NO N=174
22 Correct 1 ms 212 KB ans=YES N=90
23 Correct 0 ms 212 KB ans=YES N=63
24 Correct 1 ms 340 KB ans=YES N=87
25 Correct 1 ms 316 KB ans=YES N=183
26 Correct 1 ms 340 KB ans=YES N=188
27 Correct 1 ms 340 KB ans=YES N=183
28 Correct 1 ms 340 KB ans=YES N=189
29 Correct 1 ms 340 KB ans=YES N=200
30 Correct 1 ms 340 KB ans=YES N=190
31 Correct 1 ms 340 KB ans=YES N=187
32 Correct 1 ms 340 KB ans=YES N=187
33 Correct 1 ms 340 KB ans=YES N=182
34 Correct 1 ms 340 KB ans=YES N=184
35 Correct 1 ms 340 KB ans=YES N=188
36 Correct 1 ms 340 KB ans=YES N=181
37 Correct 1 ms 340 KB ans=YES N=188
38 Correct 1 ms 340 KB ans=YES N=191
39 Correct 1 ms 340 KB ans=YES N=196
40 Correct 1 ms 340 KB ans=YES N=196
41 Correct 1 ms 340 KB ans=YES N=196
42 Correct 1 ms 340 KB ans=YES N=196
43 Correct 1 ms 340 KB ans=YES N=195
44 Correct 1 ms 596 KB ans=NO N=1934
45 Correct 2 ms 596 KB ans=NO N=1965
46 Correct 3 ms 596 KB ans=YES N=1824
47 Correct 4 ms 724 KB ans=YES N=1981
48 Correct 4 ms 596 KB ans=YES N=1814
49 Correct 3 ms 596 KB ans=YES N=1854
50 Correct 4 ms 588 KB ans=YES N=1831
51 Correct 4 ms 724 KB ans=YES N=2000
52 Correct 3 ms 724 KB ans=YES N=1847
53 Correct 3 ms 596 KB ans=YES N=1819
54 Correct 4 ms 724 KB ans=YES N=1986
55 Correct 3 ms 676 KB ans=YES N=2000
56 Correct 3 ms 596 KB ans=YES N=1834
57 Correct 3 ms 724 KB ans=YES N=1860
58 Correct 3 ms 712 KB ans=YES N=1898
59 Correct 3 ms 596 KB ans=YES N=1832
60 Correct 3 ms 716 KB ans=YES N=1929
61 Correct 4 ms 724 KB ans=YES N=1919
62 Correct 4 ms 712 KB ans=YES N=1882
63 Correct 3 ms 716 KB ans=YES N=1922
64 Correct 4 ms 724 KB ans=YES N=1989
65 Correct 3 ms 724 KB ans=YES N=1978
66 Correct 3 ms 584 KB ans=YES N=1867
67 Correct 4 ms 724 KB ans=YES N=1942
# Verdict Execution time Memory Grader output
1 Correct 1 ms 468 KB ans=NO N=1934
2 Correct 1 ms 468 KB ans=NO N=1965
3 Incorrect 3 ms 596 KB Contestant's solution is not lexicographically largest at index 1824 (1813 vs 1702)
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB ans=YES N=1
2 Correct 1 ms 212 KB ans=YES N=4
3 Correct 0 ms 212 KB ans=NO N=4
4 Correct 0 ms 212 KB ans=YES N=5
5 Correct 0 ms 212 KB ans=YES N=9
6 Correct 1 ms 212 KB ans=YES N=5
7 Correct 1 ms 212 KB ans=NO N=9
8 Correct 1 ms 320 KB ans=NO N=10
9 Correct 0 ms 212 KB ans=YES N=10
10 Correct 1 ms 324 KB ans=YES N=10
11 Correct 1 ms 212 KB ans=YES N=10
12 Correct 1 ms 212 KB ans=YES N=9
13 Correct 0 ms 212 KB ans=YES N=9
14 Correct 0 ms 212 KB ans=YES N=8
15 Correct 0 ms 212 KB ans=YES N=8
16 Correct 0 ms 212 KB ans=NO N=2
17 Correct 1 ms 320 KB ans=YES N=17
18 Correct 1 ms 212 KB ans=YES N=25
19 Correct 1 ms 340 KB ans=YES N=100
20 Correct 1 ms 340 KB ans=YES N=185
21 Correct 0 ms 340 KB ans=NO N=174
22 Correct 1 ms 212 KB ans=YES N=90
23 Correct 0 ms 212 KB ans=YES N=63
24 Correct 1 ms 340 KB ans=YES N=87
25 Correct 1 ms 316 KB ans=YES N=183
26 Correct 1 ms 340 KB ans=YES N=188
27 Correct 1 ms 340 KB ans=YES N=183
28 Correct 1 ms 340 KB ans=YES N=189
29 Correct 1 ms 340 KB ans=YES N=200
30 Correct 1 ms 340 KB ans=YES N=190
31 Correct 1 ms 340 KB ans=YES N=187
32 Correct 1 ms 340 KB ans=YES N=187
33 Correct 1 ms 340 KB ans=YES N=182
34 Correct 1 ms 340 KB ans=YES N=184
35 Correct 1 ms 340 KB ans=YES N=188
36 Correct 1 ms 340 KB ans=YES N=181
37 Correct 1 ms 340 KB ans=YES N=188
38 Correct 1 ms 340 KB ans=YES N=191
39 Correct 1 ms 340 KB ans=YES N=196
40 Correct 1 ms 340 KB ans=YES N=196
41 Correct 1 ms 340 KB ans=YES N=196
42 Correct 1 ms 340 KB ans=YES N=196
43 Correct 1 ms 340 KB ans=YES N=195
44 Correct 1 ms 596 KB ans=NO N=1934
45 Correct 2 ms 596 KB ans=NO N=1965
46 Correct 3 ms 596 KB ans=YES N=1824
47 Correct 4 ms 724 KB ans=YES N=1981
48 Correct 4 ms 596 KB ans=YES N=1814
49 Correct 3 ms 596 KB ans=YES N=1854
50 Correct 4 ms 588 KB ans=YES N=1831
51 Correct 4 ms 724 KB ans=YES N=2000
52 Correct 3 ms 724 KB ans=YES N=1847
53 Correct 3 ms 596 KB ans=YES N=1819
54 Correct 4 ms 724 KB ans=YES N=1986
55 Correct 3 ms 676 KB ans=YES N=2000
56 Correct 3 ms 596 KB ans=YES N=1834
57 Correct 3 ms 724 KB ans=YES N=1860
58 Correct 3 ms 712 KB ans=YES N=1898
59 Correct 3 ms 596 KB ans=YES N=1832
60 Correct 3 ms 716 KB ans=YES N=1929
61 Correct 4 ms 724 KB ans=YES N=1919
62 Correct 4 ms 712 KB ans=YES N=1882
63 Correct 3 ms 716 KB ans=YES N=1922
64 Correct 4 ms 724 KB ans=YES N=1989
65 Correct 3 ms 724 KB ans=YES N=1978
66 Correct 3 ms 584 KB ans=YES N=1867
67 Correct 4 ms 724 KB ans=YES N=1942
68 Correct 134 ms 13152 KB ans=NO N=66151
69 Correct 42 ms 9400 KB ans=NO N=64333
70 Correct 160 ms 14196 KB ans=YES N=69316
71 Correct 148 ms 13668 KB ans=YES N=66695
72 Correct 155 ms 14012 KB ans=YES N=68436
73 Correct 163 ms 14232 KB ans=YES N=70000
74 Correct 145 ms 14012 KB ans=YES N=68501
75 Correct 145 ms 14168 KB ans=YES N=70000
76 Correct 134 ms 13184 KB ans=YES N=65009
77 Correct 127 ms 13728 KB ans=YES N=67007
78 Correct 126 ms 13660 KB ans=YES N=66357
79 Correct 120 ms 13220 KB ans=YES N=65430
80 Correct 130 ms 13504 KB ans=YES N=65790
81 Correct 125 ms 13616 KB ans=YES N=66020
82 Correct 132 ms 13612 KB ans=YES N=65809
83 Correct 140 ms 13640 KB ans=YES N=65651
84 Correct 130 ms 13956 KB ans=YES N=68040
85 Correct 135 ms 13628 KB ans=YES N=66570
86 Correct 142 ms 13152 KB ans=YES N=65421
87 Correct 162 ms 14064 KB ans=YES N=68351
88 Correct 160 ms 13652 KB ans=YES N=67027
89 Correct 106 ms 14104 KB ans=YES N=68879
90 Correct 146 ms 14016 KB ans=YES N=67256
91 Correct 368 ms 29624 KB ans=YES N=148315
92 Correct 130 ms 20476 KB ans=NO N=142745
93 Correct 134 ms 22968 KB ans=NO N=148443
94 Correct 381 ms 31364 KB ans=YES N=148328
95 Correct 375 ms 31388 KB ans=YES N=147855
96 Correct 384 ms 31984 KB ans=YES N=150000
97 Correct 401 ms 30836 KB ans=YES N=144725
98 Correct 391 ms 31724 KB ans=YES N=149445
99 Correct 373 ms 30984 KB ans=YES N=144455
100 Correct 381 ms 30520 KB ans=YES N=143487
101 Correct 385 ms 31760 KB ans=YES N=149688
102 Correct 341 ms 30484 KB ans=YES N=141481
103 Correct 318 ms 31384 KB ans=YES N=147430
104 Correct 379 ms 30364 KB ans=YES N=142247
105 Correct 350 ms 32044 KB ans=YES N=149941
106 Correct 299 ms 30388 KB ans=YES N=141635
107 Correct 333 ms 30296 KB ans=YES N=142896
108 Correct 318 ms 30008 KB ans=YES N=142069
109 Correct 345 ms 29648 KB ans=YES N=142378
110 Correct 349 ms 31972 KB ans=YES N=150000
111 Correct 298 ms 30008 KB ans=YES N=141452
112 Correct 264 ms 28856 KB ans=YES N=134453
113 Correct 268 ms 30520 KB ans=YES N=144172
# Verdict Execution time Memory Grader output
1 Correct 132 ms 12704 KB ans=NO N=66151
2 Correct 48 ms 8868 KB ans=NO N=64333
3 Incorrect 148 ms 13460 KB Contestant's solution is not lexicographically largest at index 69316 (69235 vs 7320)
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 468 KB ans=NO N=1934
2 Correct 1 ms 468 KB ans=NO N=1965
3 Incorrect 3 ms 596 KB Contestant's solution is not lexicographically largest at index 1824 (1813 vs 1702)
4 Halted 0 ms 0 KB -