C1. Balanced Removals (Easier)

mac2026-04-24  6

http://codeforces.com/contest/1237/problem/C1 

#include <bits/stdc++.h> //#include <cmath> //#include <iostream> //#include <unordered_map> #define lowbit(x) ((x)&(-x)) #define mem(x,y) memset(x,y,sizeof(x)) #define pb push_back #define INF 0x3f3f3f3f #define ll long long #define FAST_IO ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); using namespace std; const int mod=1e9+7; const int N=1e5+9; struct node { int id; int x,y,z; }p[N]; bool vis[N]; bool cmp(node a,node b) { if(a.x==b.x) { if(a.y==b.y) return a.z<b.z; return a.y<b.y; } return a.x<b.x; } int main() { FAST_IO; int n; cin>>n; for(int i=1;i<=n;i++) { p[i].id=i; cin>>p[i].x>>p[i].y>>p[i].z; } for(int i=1;i<=n;i++) { if(vis[i]) continue; int x=p[i].x; int y=p[i].y; int z=p[i].z; ll d=1e9; int id=0; for(int j=1;j<=n;j++) { if(i==j) continue; ll dis=abs(p[j].x-x)+abs(p[j].y-y)+abs(p[j].z-z); if(!vis[j]&&dis<d) { id=j; d=dis; } } vis[i]=1; vis[id]=1; cout<<i<<" "<<id<<endl; } return 0; }

 

最新回复(0)