mickypinata

TOI9: Wizards of TOI

Jun 18th, 2021
1,130
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. typedef pair<int, int> pii;
  5. typedef tuple<int, int, int, int> tpp;
  6.  
  7. #define x first
  8. #define y second
  9.  
  10. const int N = 1500;
  11.  
  12. pii posOf2[4][N + 1];
  13. vector<tpp> sumOf2;
  14.  
  15. int main(){
  16.  
  17.     int trX, trY, nPos;
  18.     scanf("%d%d%d", &trX, &trY, &nPos);
  19.     for(int idx = 0; idx <= 1; ++idx){
  20.         for(int i = 1; i <= nPos; ++i){
  21.             scanf("%d%d", &posOf2[idx][i].x, &posOf2[idx][i].y);
  22.         }
  23.     }
  24.     for(int i = 1; i <= nPos; ++i){
  25.         for(int j = 1; j <= nPos; ++j){
  26.             sumOf2.emplace_back(posOf2[0][i].x + posOf2[1][j].x, posOf2[0][i].y + posOf2[1][j].y, i, j);
  27.         }
  28.     }
  29.     sort(sumOf2.begin(), sumOf2.end());
  30.  
  31.     for(int idx = 2; idx <= 3; ++idx){
  32.         for(int i = 1; i <= nPos; ++i){
  33.             scanf("%d%d", &posOf2[idx][i].x, &posOf2[idx][i].y);
  34.         }
  35.     }
  36.     for(int i = 1; i <= nPos; ++i){
  37.         for(int j = 1; j <= nPos; ++j){
  38.             int wantX = trX - posOf2[2][i].x - posOf2[3][j].x;
  39.             int wantY = trY - posOf2[2][i].y - posOf2[3][j].y;
  40.             int idx = lower_bound(sumOf2.begin(), sumOf2.end(), tpp(wantX, wantY, 0, 0)) - sumOf2.begin();
  41.             if(idx != sumOf2.size() && wantX == get<0>(sumOf2[idx]) && wantY == get<1>(sumOf2[idx])){
  42.                 cout << posOf2[0][get<2>(sumOf2[idx])].x << ' ' << posOf2[0][get<2>(sumOf2[idx])].y << '\n';
  43.                 cout << posOf2[1][get<3>(sumOf2[idx])].x << ' ' << posOf2[1][get<3>(sumOf2[idx])].y << '\n';
  44.                 cout << posOf2[2][i].x << ' ' << posOf2[2][i].y << '\n';
  45.                 cout << posOf2[3][j].x << ' ' << posOf2[3][j].y << '\n';
  46.                 return 0;
  47.             }
  48.         }
  49.     }
  50.  
  51.     return 0;
  52. }
  53.  
RAW Paste Data