Advertisement
Guest User

Untitled

a guest
Sep 25th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.62 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #include <ext/pb_ds/assoc_container.hpp>
  3. using namespace std;
  4. using namespace __gnu_pbds;
  5. #define REP(i,j,k) for(int i = j ; i < k ; ++i)
  6. #define RREP(i,j,k) for(int i = j ; i >=k ; --i)
  7. #define A first
  8. #define B second
  9. #define pb push_back
  10. #define mp make_pair
  11. #define PII pair<int , int>
  12. #define MEM(i,j) memset(i , j , sizeof i)
  13. #define ALL(i) i.begin() , i.end()
  14. #define DBGG(i,j) cout << i << " " << j << endl
  15. #define DB4(i,j,k,l) cout << i << " " << j << " " << k << " " << l << endl
  16. #define IOS cin.tie() , cout.sync_with_stdio(0)
  17. #define endl "\n"
  18. ///------------------------------------------------------------
  19. #define int long long
  20. #define MAX 2010
  21. #define INF 0x3f3f3f3f
  22.  
  23. int n;
  24. int x[MAX][2];
  25. int32_t main(){
  26. cin >> n;
  27. REP(i , 0 , n){
  28. cin >> x[i][0] >> x[i][1];
  29. }
  30. int ans = n * (n - 1) * (n - 2) / 6;
  31.  
  32. REP(i , 0 , n){
  33. map<PII , int> dd;
  34. int cnt = 0;
  35. REP(j , i + 1 , n){
  36. int xx = x[i][0] - x[j][0];
  37. int yy = x[i][1] - x[j][1];
  38. if(xx == 0 && yy == 0) cnt ++;
  39. else {
  40. if(xx == 0) yy = 1;
  41. else if(yy == 0) xx = 1;
  42. else if(xx < 0) xx *= -1 , yy *= -1;
  43. int gg = __gcd(xx , yy);
  44. if(xx != 0 && yy != 0) xx /= gg , yy /= gg;
  45. dd[mp(xx , yy)] ++;
  46. }
  47. }
  48. for(auto to : dd){
  49. to.B += cnt;
  50. int tmp = (to.B) * (to.B - 1) / 2;
  51. ans -= tmp;
  52. }
  53. }
  54. cout << ans << endl;
  55. return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement