//Trumling ©
//Αφόδευε υψηλά και ηγνάντει 
#include <bits/stdc++.h>
using namespace std; 
typedef long long ll;
#define pb push_back
#define F first
#define S second
#define enter cout<<'\n';
#define INF 99999999999999999
#define MOD 1000000007
#define all(x) x.begin(),x.end()
vector<vector<ll>>g;
pair<ll,ll>arr[150001];
vector<bool>vis;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
ll n;
cin>>n;
ll t;
cin>>t;
g.assign(n+1,vector<ll>());
vis.assign(n+1,0);
long double sumx=0,sumy=0;
for(int i=0;i<n;i++)
{
    cin>>arr[i].F>>arr[i].S;
    sumx+=arr[i].F;
    sumy+=arr[i].S;
}
sumx/=n;
sumy/=n;
ll start=0;
for(int i=0;i<n;i++)
    if(abs(arr[i].F-sumx) + abs(arr[i].S - sumy) < abs(arr[start].F-sumx) + abs(arr[start].S - sumy))
        start=i;
for(int i=0;i<n;i++)
    for(int j=i+1;j<n;j++)
    {
        ll dx=abs(arr[i].F-arr[j].F);
        ll dy=abs(arr[i].S-arr[j].S);
        if(dx<=1 && dy<=1)
            {
                g[i+1].pb(j+1);
                g[j+1].pb(i+1);
            }
    }
vector<bool>vis(n+1,0);
vis[start+1]=1;
queue<ll>q;
queue<ll>ans;
ans.push(start+1);
q.push(start+1);
bool rev=0;
while(!q.empty())
{
    ll curr=q.front();
    q.pop();
    for(auto x:g[curr])
        if(!vis[x])
        {
            vis[x]=1;
            ans.push(x);
            q.push(x);
        }
}
bool tf=1;
for(int i=1;i<=n;i++)
    if(!vis[i])
        {
            tf=0;
            break;
        }
if(!tf)
{
    cout<<"NO";
    return 0;
}
cout<<"YES"<<'\n';
while(!ans.empty())
{
    cout<<ans.front()<<'\n';
    ans.pop();
}
}
| # | 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... |