merkator

Untitled

Dec 10th, 2011
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.73 KB | None | 0 0
  1. #include<cstdio>
  2. #include<cctype>
  3. #include<iostream>
  4. #include<fstream>
  5. #include<functional>
  6. #include<utility>
  7. #include<vector>
  8. #include<stack>
  9. #include<map>
  10. #include<queue>
  11. #include<deque>
  12. #include<cstdlib>
  13. #include<cmath>
  14. #include<algorithm>
  15. #include<set>
  16. #include<complex>
  17. #include<cstring>
  18. #include<string>
  19. #include<cassert>
  20. #include<iomanip>
  21.  
  22.                
  23. using namespace std;
  24.  
  25. typedef long long LL;
  26. typedef unsigned long long ULL;
  27. typedef vector<int> vi;
  28. typedef pair<int,int> pii;
  29.  
  30. #define pb push_back
  31. #define mp make_pair
  32. #define fi first
  33. #define se second
  34. #define all(n) (n).begin(), (n).end()
  35. #define EPS 1e-9
  36. #define INF 1e9
  37. #define forn(i, n) for(int i = 0; i < (n); ++i)
  38. #define forab(i, a, b) for(int i = a; (i) < (b); ++(i))
  39. #define forba(i, b, a) for(int i = b-1; i >= (a); --i)
  40. #define forit(i, v) for(__typeof((v).begin()) i = (v).begin(); i != (v).end(); ++i)
  41. #define fornr(i,n) for(int i=(n)-1;i>=0;--i)
  42.  
  43. int x[8], y[8];
  44. int r[4];
  45.  
  46. int D(int a, int b){
  47.     return (x[a]-x[b])*(x[a]-x[b])+(y[a]-y[b])*(y[a]-y[b]);
  48. }
  49.  
  50. int dp(int a, int b, int c, int d){
  51.     return (x[c]-x[a])*(x[d]-x[b])+(y[c]-y[a])*(y[d]-y[b]);
  52. }
  53.  
  54. vi p;
  55.  
  56. int main(){
  57. #ifdef FN
  58.     freopen(FN".in", "r", stdin);
  59.     freopen(FN".out", "w", stdout);
  60. #endif
  61.     forn(i, 8){
  62.         scanf("%d%d", &x[i], &y[i]);
  63.         p.pb(i);
  64.     }
  65.     do{
  66.         if(D(p[0], p[2])==D(p[1], p[3]) && dp(p[0], p[1], p[2], p[3])==0 && D(p[4], p[5])==D(p[6], p[7]) && D(p[4], p[7])==D(p[5], p[6]) && dp(p[4], p[4], p[5], p[6])==0){
  67.             puts("YES");
  68.             forn(i, 8){
  69.                 if(i==4){
  70.                     puts("");
  71.                 }
  72.                 printf("%d", p[i]+1);
  73.                 if(i!=3){
  74.                     printf(" ");
  75.                 }
  76.             }
  77.             return 0;
  78.         }      
  79.     }while(next_permutation(p.begin(), p.end()));
  80.     printf("NO\n");
  81.     return 0;
  82. }
  83.  
Advertisement
Add Comment
Please, Sign In to add comment