Advertisement
yungyao

neoj 790

Dec 15th, 2021
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.69 KB | None | 0 0
  1. /*
  2.  
  3.  
  4. weak        weak  we      ak   we  akwea        weak  we
  5.   weak    weak    we      ak   weak    weak    we  ak we
  6.     weakweak      we      ak   wea       ak   we    akwe
  7.       wea         we      ak   we        ak   we    akwe
  8.       wea         we      ak   we        ak   we    akwe
  9.       wea          eak  weak   we        ak    we  ak we
  10.       wea            wea  ak   we        ak     weak  we
  11.                                                       we
  12. we      ak     wea  ak       weak                     we
  13.  we    ak    wea  weak     wea  eak                   we
  14.   we  ak    we      ak   wea      wea         we      we
  15.    weak     we      ak   we        we         we      we
  16.     we      we      ak   we        we         we      we
  17.    we        wea  weak    wea    wea          weak  weak
  18. weak           wea  akw      weak                weak
  19.  
  20.  
  21. */
  22. //#define _GLIBCXX_DEBUG //is only used when couldn't find bug
  23. using namespace std;
  24. #pragma GCC optimize ("Ofast")
  25. //headers
  26. #include <vector>
  27. #include <queue>
  28. #include <algorithm>
  29. #include <cmath>
  30. #include <utility>
  31. #include <bitset>
  32. #include <set>
  33. #include <string>
  34. #include <stack>
  35. #include <iomanip>
  36. #include <map>
  37. #include <memory.h>
  38. #include <deque>
  39. #include <time.h>
  40. #include <assert.h>
  41. #include <unordered_map>
  42. #include <unordered_set>
  43. #include <sstream>
  44.  
  45. //defines
  46. typedef long long LL;
  47. typedef pair<int,int> pii;
  48. typedef pair<LL,LL> pll;
  49. typedef vector<int> vi;
  50. typedef vector<LL> vl;
  51. typedef vector<vector<int>> vvi;
  52. typedef vector<vector<LL>> vvl;
  53. #define pb push_back
  54. #define F first
  55. #define S second
  56. #define mid (LB+RB)/2
  57. #define mkp make_pair
  58.  
  59. //iterators
  60. #define iter(x) x.begin(),x.end()
  61. #define aiter(a,n) a,a+n
  62.  
  63. //loops
  64. #define REP(n) for (int ___=n > 0 ? n : 0;___--;)
  65. #define REP0(i,n) for (int i=0,___=n;i<___;++i)
  66. #define REP1(i,n) for (int i=1,___=n;i<=___;++i)
  67. #define MEM(e,val) memset (e,val,sizeof(e))
  68.  
  69. /*
  70. When he said Super Idol??摰寥瘝∩????急?甇????瘝∩??€?潛??105 簞C??皛湔輕皜滲?擐偌雿??乩????舐頝€?隡蝚???韏瑚?隞?賭?頧餉?憭梯揖撖寞╪?喟??抒?銝€?港??暹敺?敹?敶?撖寞?霂港?????曄?霈拇??亙??Z蕭?芸楛?╪?喲???芋??
  71. I really felt that.
  72.  
  73.  
  74. every one is so dian except me
  75. still too weak ?拙?
  76. */
  77.  
  78. //IO
  79. #include <cstdio>
  80. #include <iostream>
  81. #include <fstream>
  82. #define want_to_be_more_dian ios_base::sync_with_stdio(false),cin.tie(0);
  83.  
  84. //pbds
  85. /*
  86. #include <ext/pb_ds/tree_policy.hpp>
  87. #include <ext/pb_ds/assoc_container.hpp>
  88. #include <ext/pb_ds/priority_queue.hpp>
  89. using namespace __gnu_pbds;
  90. //tree <pii,null_type,less<pii>,rb_tree_tag,tree_order_statistics_node_update>;
  91. */
  92.  
  93. //constants
  94. #include <climits>
  95. const int maxn = 2.4e4+20,mod = 0;
  96. const long long inf = 0;
  97. const double eps = 0;
  98.  
  99. //workspace
  100.  
  101. pii p[maxn];
  102.  
  103. inline void solve(){
  104.     int n;
  105.  
  106.     cin >> n;
  107.     REP0(i, n) cin >> p[i].F >> p[i].S;
  108.  
  109.     LL ans = 0;
  110.     REP0(i, n){
  111.         map <pii, int> mp;
  112.         REP0(j, n) if (i != j){
  113.             pii dif = mkp(p[j].F - p[i].F, p[j].S - p[i].S);
  114.  
  115.             if (dif.F < 0 or (!dif.F and dif.S < 0)){
  116.                 dif.F = -dif.F;
  117.                 dif.S = -dif.S;
  118.             }
  119.  
  120.             int g = __gcd(dif.F, (int)abs(dif.S));
  121.             dif.F /= g;
  122.             dif.S /= g;
  123.             ++mp[dif];
  124.         }
  125.  
  126.         for (auto &[___, c]:mp) ans += c * (n - c - 1);
  127.     }
  128.  
  129.     cout << ans / 6;
  130. }
  131.  
  132. signed main(){
  133.     want_to_be_more_dian
  134.     //int t,i=1; for (int ;cin;)//use in multi-testcases and end in EOF problems
  135.     //int t,i=1; for (cin >> t;i<=t;++i)//use in multi-testcases problems
  136.     //cout << "Case #" << i << ": ",//use in Google, FB competitions
  137.     solve();//always used
  138.     return 0;
  139. }
  140.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement