Advertisement
NgJaBach

Triangles

Jan 24th, 2023
842
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.08 KB | None | 0 0
  1. // NgJaBach: Forever Meadow <3
  2.  
  3. #include<bits/stdc++.h>
  4.  
  5. using namespace std;
  6. typedef long long int ll;
  7. typedef unsigned long long ull;
  8. #define pb push_back
  9. #define pob pop_back
  10. #define mp make_pair
  11. #define upb upper_bound
  12. #define lwb lower_bound
  13. #define bend(a) a.begin(),a.end()
  14. #define rev(x) reverse(bend(x))
  15. #define mset(a) memset(a, 0, sizeof(a))
  16. #define fi first
  17. #define se second
  18. #define gcd __gcd
  19. #define getl(s) getline(cin, s);
  20. #define setpre(x) fixed << setprecision(x)
  21. #define endl '\n'
  22. const int N=200050,M=1000000007;
  23. const ll INF=1e18+7;
  24. ll dist(pair<ll,ll>A,pair<ll,ll>B){
  25.     A.fi-=B.fi;
  26.     A.se-=B.se;
  27.     return sqrt(A.fi*A.fi+A.se*A.se);
  28. }
  29. ll tria(pair<ll,ll>A,pair<ll,ll>B,pair<ll,ll>C){
  30.     return (dist(A,B)*dist(A,C));
  31. }
  32. ll cal;
  33. bool check(vector<pair<ll,ll> >gay){
  34.     pair<ll,ll>A,B,C;
  35.     sort(bend(gay));
  36.     A=gay[0]; B=gay[1]; C=gay[2];
  37.     if((A.fi==B.fi and B.fi==C.fi) or (A.se==B.se and B.se==C.se)) return false;
  38.     if(A.fi==B.fi){
  39.         if(A.se==C.se){
  40.             cal=tria(A,B,C);
  41.             return true;
  42.         }
  43.         else if(B.se==C.se){
  44.             cal=tria(B,C,A);
  45.             return true;
  46.         }
  47.     }
  48.     else if(B.fi==C.fi){
  49.         if(B.se==A.se){
  50.             cal=tria(B,C,A);
  51.             return true;
  52.         }
  53.         else if(C.se==A.se){
  54.             cal=tria(C,A,B);
  55.             return true;
  56.         }
  57.     }
  58.     return false;
  59. }
  60. vector<pair<ll,ll> >vec;
  61. int main(){
  62.     ios_base::sync_with_stdio(NULL); cin.tie(nullptr); cout.tie(nullptr);
  63.     freopen("triangles.in","r",stdin);
  64.     freopen("triangles.out","w",stdout);
  65.     int n,a,b;
  66.     ll ans=0;
  67.     cin>>n;
  68.     for(int i=0;i<n;++i){
  69.         cin>>a>>b;
  70.         vec.pb({a,b});
  71.     }
  72.     for(int i=0;i<n;++i){
  73.         for(int j=i+1;j<n;++j){
  74.             for(int k=j+1;k<n;++k){
  75.                 if(check({vec[i],vec[j],vec[k]})) ans=max(ans,cal);
  76.             }
  77.         }
  78.     }
  79.     cout<<ans;
  80.     return 0;
  81. }
  82. /*
  83. ==================================+
  84. INPUT:                            |
  85. ------------------------------    |
  86.  
  87. ------------------------------    |
  88. ==================================+
  89. OUTPUT:                           |
  90. ------------------------------    |
  91.  
  92. ------------------------------    |
  93. ==================================+
  94. */
  95.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement