Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.65 KB | None | 0 0
  1.     /*
  2.     https://t.me/unstoppabIesoIvemachinechannel
  3.     */
  4.     #pragma ARCENIY_KIRILLOV_POVELITEL_KROKODILOV
  5.     //#pragma comment(linker, "/stack:200000000")
  6.     //#pragma GCC optimize("Ofast")
  7.     //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
  8.     //#pragma GCC optimize("no-stack-protector")
  9.     //#pragma GCC push_options
  10.     //#pragma GCC optimize ("unroll-loops")
  11.     //#pragma GCC pop_options
  12.     //#pragma GCC target("popcnt")
  13.     //#pragma GCC target("sse4")
  14.     #include<bits/stdc++.h>
  15.     #define fi first
  16.     #define se second
  17.     #define pb push_back
  18.     #define eb emplace_back
  19.     #define rng(a) a.begin(),a.end()
  20.     #define fast ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)
  21.     #define rep(i, n) for (int i = 0; i < n; i++)
  22.     #define per(i, n) for (int i = n - 1; i > -1; i--)
  23.     #define rer(i, x, n) for (int i = x; i < n; i++)
  24.     using namespace std;
  25.     typedef long long ll;
  26.     typedef pair<int, int> pii;
  27.     typedef vector<int> vi;
  28.     typedef vector<vi> vvi;
  29.     typedef vector<pii> vp;
  30.     typedef long double ld;
  31.      
  32.      
  33.      
  34.      
  35.      
  36.      
  37.      
  38.      
  39.      
  40.      
  41.      
  42.      
  43.      
  44.      
  45.      
  46.     signed main(){
  47.         int n;
  48.         cin >> n;
  49.         vector<pair<pair<int,int>,pair<int,int> > > x(n);
  50.         for (int i = 0; i < n; i++){
  51.                 cin >> x[i].fi.fi >> x[i].fi.se >> x[i].se.fi;
  52.                 x[i].se.se = i + 1;
  53.         }
  54.         sort(rng(x));
  55.         vector<bool> used(n);
  56.         for (int i = 0; i < n; i++){
  57.                 if (used[i]) continue;
  58.             int minx, miny, minz, id;
  59.             int maxx = minx = x[i].fi.fi;
  60.             int maxy = miny = x[i].fi.se;
  61.             int maxz = minz = x[i].se.fi;
  62.             for (int j = i + 1; j < n; j++){
  63.                 if (used[j]) continue;
  64.                     if ( ((minx <= x[j].fi.fi && x[j].fi.fi <= maxx) &&
  65.                         (miny <= x[j].fi.se && x[j].fi.se <= maxy) &&
  66.                         (minz <= x[j].se.fi && x[j].se.fi <= maxz)) || (maxx == minx && maxy == miny && maxz == minz) ){
  67.                             id = j;
  68.                             minx = min(minx, x[j].fi.fi);
  69.                             maxx = max(maxx, x[j].fi.fi);
  70.                             miny = min(miny, x[j].fi.se);
  71.                             maxy = max(maxy, x[j].fi.se);
  72.                             minz = min(minz, x[j].se.fi);
  73.                             maxz = max(maxz, x[j].se.fi);
  74.                         }
  75.             }
  76.             used[i] = 1;
  77.             used[id] = 1;
  78.             cout << x[i].se.se << ' ' << x[id].se.se << endl;
  79.         }
  80.      
  81.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement