#include <bits/stdc++.h>
using namespace std;
inline void solve()
{
int n,t;
cin>>n>>t;
int r[n],c[n];
map<pair<int,int>,int>pre,ind;
for (int i=0;i<n;i++)
{
cin>>r[i]>>c[i];
pre[{r[i],c[i]}]=1;
ind[{r[i],c[i]}]=i+1;
}
pair<int,int>cur={1e9,1e9};
for (int i=0;i<n;i++)
{
pair<int,int>f={r[i],c[i]};
cur=min(cur,f);
}
vector<int>ans;
set<pair<int,int>>S;
S.insert(cur);
pre[cur]=0;
while (S.size())
{
pair<int,int>g=*begin(S);
S.erase(g);
ans.push_back(ind[g]);
for (int i=-1;i<=1;i++)
{
for (int j=-1;j<=1;j++)
{
pair<int,int>f={g.first+i,g.second+j};
if (pre[f])
{
pre[f]=0;
S.insert(f);
}
}
}
}
if (ans.size()!=n)
{
cout<<"NO\n";return;
}
cout<<"YES\n";
for (auto i:ans)
cout<<i<<'\n';
}
int main()
{
ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
int t=1;
for (int i=1;i<=t;i++)
{
solve();
}
}
| # | 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... |