Submission #571123

# Submission time Handle Problem Language Result Execution time Memory
571123 2022-06-01T09:43:04 Z web Building Skyscrapers (CEOI19_skyscrapers) C++17
54 / 100
1620 ms 19164 KB
#include <functional>
#include <queue>
#include <bitset>
#include <iostream>
#include <vector>
#include <algorithm>
#include <tuple>
using namespace std;
typedef long long ll;
vector<bitset<2*1000000001>> grid;
void setBits(int x,int y)
{
    for(int i = x-1; i<= x+1; ++i)
    {
        for(int j = y-1; j<= y+1; ++j)
        {
            grid[x].set(y);
        }
    }
}


bool isAdjacent(pair<long, pair<long, int>>s1, pair<long, pair<long, int>>s2)
  {  return abs(s1.first -s2.first ) <= 1 && abs(s1.second.first - s2.second.first) <=1;}

bitset<150000> visited;
vector<vector<int>> adjList;
vector<pair<long,pair<long, int>>> buildings;
vector<int> order;


long calcManhattenDist(int i, int j)
{
    return abs(buildings[i].first - buildings[j].first) + abs(buildings[i].second.first - buildings[j].second.first);
}


void BFS(int startNode)
{
    auto comp = [startNode](int lhs, int rhs)
    {
       return buildings[lhs] > buildings[rhs];//calcManhattenDist(startNode, lhs) > calcManhattenDist(startNode, rhs);
    };
    priority_queue<int, vector<int>, decltype( comp)> nodeList(comp);
    nodeList.push(startNode);
    visited.set(startNode);
    while(nodeList.size() != 0)
    {
        int newNode = nodeList.top();
        nodeList.pop();
       
        order.push_back(newNode);
        for(auto node:adjList[newNode])
        {
            if(!visited.test(node))
            {
                nodeList.push(node);
                visited.set(node);
            }
        }
    }
}

int main()
{
    int n; cin>>n;
    int t; cin>>t;
    buildings.resize(n);
    for(int i = 0; i<n; ++i)
    {
        long a; long b; cin>>a>>b;
        buildings[i] = {a,{b, i}};
    }
    adjList.resize(n);
    sort(buildings.begin(), buildings.end());
    for(int i = 0; i<n-1; ++i)
    {
        for(int j = i+1; j<n; ++j)
        {
            if(buildings[j].first - buildings[i].first > 1)
                break;
            else
            {
                if(isAdjacent(buildings[i], buildings[j]))
                {
                    adjList[i].push_back(j);
                    adjList[j].push_back(i);
                }
            }
        }
    }
    
    //DFS
    BFS(0);
    for(int i = 0; i<n; ++i)
    {
        if(!visited.test(i))
        {
            cout<<"NO"<<endl;
            return 0;
        }
    }
    cout<<"YES"<<endl;
    for(int i = 0; i<n; ++i)
    {
        cout<<buildings[order[i]].second.second+1<<endl;
    }
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB ans=YES N=1
2 Correct 1 ms 212 KB ans=YES N=4
3 Correct 1 ms 212 KB ans=NO N=4
4 Correct 1 ms 212 KB ans=YES N=5
5 Correct 1 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 212 KB ans=NO N=10
9 Correct 1 ms 312 KB ans=YES N=10
10 Correct 1 ms 212 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 1 ms 212 KB ans=YES N=9
14 Correct 1 ms 212 KB ans=YES N=8
15 Correct 1 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 1 ms 212 KB ans=YES N=1
2 Correct 1 ms 212 KB ans=YES N=4
3 Correct 1 ms 212 KB ans=NO N=4
4 Correct 1 ms 212 KB ans=YES N=5
5 Correct 1 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 212 KB ans=NO N=10
9 Correct 1 ms 312 KB ans=YES N=10
10 Correct 1 ms 212 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 1 ms 212 KB ans=YES N=9
14 Correct 1 ms 212 KB ans=YES N=8
15 Correct 1 ms 212 KB ans=YES N=8
16 Correct 0 ms 212 KB ans=NO N=2
17 Correct 1 ms 304 KB ans=YES N=17
18 Correct 1 ms 304 KB ans=YES N=25
19 Correct 1 ms 340 KB ans=YES N=100
20 Correct 1 ms 308 KB ans=YES N=185
21 Correct 1 ms 212 KB ans=NO N=174
22 Correct 1 ms 212 KB ans=YES N=90
23 Correct 1 ms 212 KB ans=YES N=63
24 Correct 1 ms 212 KB ans=YES N=87
25 Correct 1 ms 212 KB ans=YES N=183
26 Correct 1 ms 212 KB ans=YES N=188
27 Correct 1 ms 212 KB ans=YES N=183
28 Correct 1 ms 212 KB ans=YES N=189
29 Correct 1 ms 212 KB ans=YES N=200
30 Correct 1 ms 312 KB ans=YES N=190
31 Correct 1 ms 304 KB ans=YES N=187
32 Correct 1 ms 312 KB ans=YES N=187
33 Correct 1 ms 212 KB ans=YES N=182
34 Correct 1 ms 212 KB ans=YES N=184
35 Correct 1 ms 212 KB ans=YES N=188
36 Correct 1 ms 212 KB ans=YES N=181
37 Correct 1 ms 212 KB ans=YES N=188
38 Correct 1 ms 304 KB ans=YES N=191
39 Correct 1 ms 212 KB ans=YES N=196
40 Correct 1 ms 212 KB ans=YES N=196
41 Correct 1 ms 308 KB ans=YES N=196
42 Correct 1 ms 308 KB ans=YES N=196
43 Correct 1 ms 312 KB ans=YES N=195
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB ans=YES N=1
2 Correct 1 ms 212 KB ans=YES N=4
3 Correct 1 ms 212 KB ans=NO N=4
4 Correct 1 ms 212 KB ans=YES N=5
5 Correct 1 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 212 KB ans=NO N=10
9 Correct 1 ms 312 KB ans=YES N=10
10 Correct 1 ms 212 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 1 ms 212 KB ans=YES N=9
14 Correct 1 ms 212 KB ans=YES N=8
15 Correct 1 ms 212 KB ans=YES N=8
16 Correct 0 ms 212 KB ans=NO N=2
17 Correct 1 ms 304 KB ans=YES N=17
18 Correct 1 ms 304 KB ans=YES N=25
19 Correct 1 ms 340 KB ans=YES N=100
20 Correct 1 ms 308 KB ans=YES N=185
21 Correct 1 ms 212 KB ans=NO N=174
22 Correct 1 ms 212 KB ans=YES N=90
23 Correct 1 ms 212 KB ans=YES N=63
24 Correct 1 ms 212 KB ans=YES N=87
25 Correct 1 ms 212 KB ans=YES N=183
26 Correct 1 ms 212 KB ans=YES N=188
27 Correct 1 ms 212 KB ans=YES N=183
28 Correct 1 ms 212 KB ans=YES N=189
29 Correct 1 ms 212 KB ans=YES N=200
30 Correct 1 ms 312 KB ans=YES N=190
31 Correct 1 ms 304 KB ans=YES N=187
32 Correct 1 ms 312 KB ans=YES N=187
33 Correct 1 ms 212 KB ans=YES N=182
34 Correct 1 ms 212 KB ans=YES N=184
35 Correct 1 ms 212 KB ans=YES N=188
36 Correct 1 ms 212 KB ans=YES N=181
37 Correct 1 ms 212 KB ans=YES N=188
38 Correct 1 ms 304 KB ans=YES N=191
39 Correct 1 ms 212 KB ans=YES N=196
40 Correct 1 ms 212 KB ans=YES N=196
41 Correct 1 ms 308 KB ans=YES N=196
42 Correct 1 ms 308 KB ans=YES N=196
43 Correct 1 ms 312 KB ans=YES N=195
44 Correct 3 ms 340 KB ans=NO N=1934
45 Correct 2 ms 448 KB ans=NO N=1965
46 Correct 4 ms 452 KB ans=YES N=1824
47 Correct 5 ms 468 KB ans=YES N=1981
48 Correct 5 ms 468 KB ans=YES N=1814
49 Correct 5 ms 468 KB ans=YES N=1854
50 Correct 5 ms 468 KB ans=YES N=1831
51 Correct 6 ms 468 KB ans=YES N=2000
52 Correct 7 ms 468 KB ans=YES N=1847
53 Correct 5 ms 468 KB ans=YES N=1819
54 Correct 6 ms 468 KB ans=YES N=1986
55 Correct 6 ms 468 KB ans=YES N=2000
56 Correct 5 ms 468 KB ans=YES N=1834
57 Correct 5 ms 468 KB ans=YES N=1860
58 Correct 5 ms 516 KB ans=YES N=1898
59 Correct 6 ms 444 KB ans=YES N=1832
60 Correct 5 ms 452 KB ans=YES N=1929
61 Correct 6 ms 468 KB ans=YES N=1919
62 Correct 6 ms 468 KB ans=YES N=1882
63 Correct 5 ms 468 KB ans=YES N=1922
64 Correct 5 ms 468 KB ans=YES N=1989
65 Correct 7 ms 516 KB ans=YES N=1978
66 Correct 4 ms 468 KB ans=YES N=1867
67 Correct 5 ms 468 KB ans=YES N=1942
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB ans=NO N=1934
2 Correct 3 ms 468 KB ans=NO N=1965
3 Incorrect 6 ms 444 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 1 ms 212 KB ans=YES N=1
2 Correct 1 ms 212 KB ans=YES N=4
3 Correct 1 ms 212 KB ans=NO N=4
4 Correct 1 ms 212 KB ans=YES N=5
5 Correct 1 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 212 KB ans=NO N=10
9 Correct 1 ms 312 KB ans=YES N=10
10 Correct 1 ms 212 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 1 ms 212 KB ans=YES N=9
14 Correct 1 ms 212 KB ans=YES N=8
15 Correct 1 ms 212 KB ans=YES N=8
16 Correct 0 ms 212 KB ans=NO N=2
17 Correct 1 ms 304 KB ans=YES N=17
18 Correct 1 ms 304 KB ans=YES N=25
19 Correct 1 ms 340 KB ans=YES N=100
20 Correct 1 ms 308 KB ans=YES N=185
21 Correct 1 ms 212 KB ans=NO N=174
22 Correct 1 ms 212 KB ans=YES N=90
23 Correct 1 ms 212 KB ans=YES N=63
24 Correct 1 ms 212 KB ans=YES N=87
25 Correct 1 ms 212 KB ans=YES N=183
26 Correct 1 ms 212 KB ans=YES N=188
27 Correct 1 ms 212 KB ans=YES N=183
28 Correct 1 ms 212 KB ans=YES N=189
29 Correct 1 ms 212 KB ans=YES N=200
30 Correct 1 ms 312 KB ans=YES N=190
31 Correct 1 ms 304 KB ans=YES N=187
32 Correct 1 ms 312 KB ans=YES N=187
33 Correct 1 ms 212 KB ans=YES N=182
34 Correct 1 ms 212 KB ans=YES N=184
35 Correct 1 ms 212 KB ans=YES N=188
36 Correct 1 ms 212 KB ans=YES N=181
37 Correct 1 ms 212 KB ans=YES N=188
38 Correct 1 ms 304 KB ans=YES N=191
39 Correct 1 ms 212 KB ans=YES N=196
40 Correct 1 ms 212 KB ans=YES N=196
41 Correct 1 ms 308 KB ans=YES N=196
42 Correct 1 ms 308 KB ans=YES N=196
43 Correct 1 ms 312 KB ans=YES N=195
44 Correct 3 ms 340 KB ans=NO N=1934
45 Correct 2 ms 448 KB ans=NO N=1965
46 Correct 4 ms 452 KB ans=YES N=1824
47 Correct 5 ms 468 KB ans=YES N=1981
48 Correct 5 ms 468 KB ans=YES N=1814
49 Correct 5 ms 468 KB ans=YES N=1854
50 Correct 5 ms 468 KB ans=YES N=1831
51 Correct 6 ms 468 KB ans=YES N=2000
52 Correct 7 ms 468 KB ans=YES N=1847
53 Correct 5 ms 468 KB ans=YES N=1819
54 Correct 6 ms 468 KB ans=YES N=1986
55 Correct 6 ms 468 KB ans=YES N=2000
56 Correct 5 ms 468 KB ans=YES N=1834
57 Correct 5 ms 468 KB ans=YES N=1860
58 Correct 5 ms 516 KB ans=YES N=1898
59 Correct 6 ms 444 KB ans=YES N=1832
60 Correct 5 ms 452 KB ans=YES N=1929
61 Correct 6 ms 468 KB ans=YES N=1919
62 Correct 6 ms 468 KB ans=YES N=1882
63 Correct 5 ms 468 KB ans=YES N=1922
64 Correct 5 ms 468 KB ans=YES N=1989
65 Correct 7 ms 516 KB ans=YES N=1978
66 Correct 4 ms 468 KB ans=YES N=1867
67 Correct 5 ms 468 KB ans=YES N=1942
68 Correct 120 ms 7348 KB ans=NO N=66151
69 Correct 60 ms 4672 KB ans=NO N=64333
70 Correct 272 ms 8136 KB ans=YES N=69316
71 Correct 230 ms 7836 KB ans=YES N=66695
72 Correct 226 ms 8016 KB ans=YES N=68436
73 Correct 231 ms 8268 KB ans=YES N=70000
74 Correct 225 ms 8152 KB ans=YES N=68501
75 Correct 229 ms 8224 KB ans=YES N=70000
76 Correct 206 ms 7756 KB ans=YES N=65009
77 Correct 190 ms 7152 KB ans=YES N=67007
78 Correct 169 ms 6912 KB ans=YES N=66357
79 Correct 149 ms 6828 KB ans=YES N=65430
80 Correct 167 ms 6812 KB ans=YES N=65790
81 Correct 172 ms 6860 KB ans=YES N=66020
82 Correct 179 ms 6988 KB ans=YES N=65809
83 Correct 190 ms 7596 KB ans=YES N=65651
84 Correct 162 ms 7036 KB ans=YES N=68040
85 Correct 153 ms 6980 KB ans=YES N=66570
86 Correct 199 ms 7576 KB ans=YES N=65421
87 Correct 168 ms 8044 KB ans=YES N=68351
88 Correct 181 ms 7916 KB ans=YES N=67027
89 Correct 207 ms 7140 KB ans=YES N=68879
90 Correct 492 ms 7600 KB ans=YES N=67256
91 Correct 547 ms 16948 KB ans=YES N=148315
92 Correct 132 ms 9272 KB ans=NO N=142745
93 Correct 131 ms 10180 KB ans=NO N=148443
94 Correct 591 ms 18748 KB ans=YES N=148328
95 Correct 596 ms 18752 KB ans=YES N=147855
96 Correct 617 ms 19164 KB ans=YES N=150000
97 Correct 583 ms 18564 KB ans=YES N=144725
98 Correct 610 ms 19028 KB ans=YES N=149445
99 Correct 597 ms 18496 KB ans=YES N=144455
100 Correct 572 ms 18256 KB ans=YES N=143487
101 Correct 619 ms 19084 KB ans=YES N=149688
102 Correct 502 ms 16300 KB ans=YES N=141481
103 Correct 387 ms 16548 KB ans=YES N=147430
104 Correct 523 ms 16556 KB ans=YES N=142247
105 Correct 540 ms 17616 KB ans=YES N=149941
106 Correct 331 ms 16040 KB ans=YES N=141635
107 Correct 408 ms 15940 KB ans=YES N=142896
108 Correct 418 ms 15792 KB ans=YES N=142069
109 Correct 492 ms 17392 KB ans=YES N=142378
110 Correct 401 ms 18016 KB ans=YES N=150000
111 Correct 377 ms 15784 KB ans=YES N=141452
112 Correct 1620 ms 15008 KB ans=YES N=134453
113 Correct 309 ms 16072 KB ans=YES N=144172
# Verdict Execution time Memory Grader output
1 Correct 119 ms 7108 KB ans=NO N=66151
2 Correct 59 ms 4352 KB ans=NO N=64333
3 Incorrect 221 ms 7824 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 2 ms 384 KB ans=NO N=1934
2 Correct 3 ms 468 KB ans=NO N=1965
3 Incorrect 6 ms 444 KB Contestant's solution is not lexicographically largest at index 1824 (1813 vs 1702)
4 Halted 0 ms 0 KB -