#include<bits/stdc++.h>
using namespace std;
#define pii pair<int,int>
#define tiii tuple<int,int,int>
vector<pii> dirs = {{1,0},{-1,0},{0,1},{0,-1},{1,1},{-1,1},{1,-1},{-1,-1},};
int main(){
int n, t;
cin >> n >> t;
set<pii> occ;
vector<tiii> arr(n);
for(int i = 0; i < n; i++){
int r,c;
cin >> r >> c;
arr[i] = {r,c,i};
occ.insert({r,c});
}
set<pii> vis;
queue<pii> q;
q.push(*(occ.begin()));
while(q.size()){
int r,c;
tie(r,c) = q.front(); q.pop();
if(!occ.count({r,c}) || vis.count({r,c})) {
continue;
}
vis.insert({r,c});
for(pii p : dirs){
q.push({r+p.first,c + p.second});
}
}
if(vis.size() != n){
cout << "NO" << endl;
return 0;
}
cout << "YES\n";
sort(arr.begin(),arr.end());
for(int i = 0; i < n; i++){
cout << get<2>(arr[i])+1 << endl;
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |