Morass

Cubes

Sep 30th, 2016
643
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.60 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define PB push_back
  4. #define ZERO (1e-10)
  5. #define INF (1<<29)
  6. #define CL(A,I) (memset(A,I,sizeof(A)))
  7. #define DEB printf("DEB!\n");
  8. #define D(X) cout<<"  "<<#X": "<<X<<endl;
  9. #define EQ(A,B) (A+ZERO>B&&A-ZERO<B)
  10. typedef long long ll;
  11. typedef long double ld;
  12. typedef pair<ll,ll> pll;
  13. typedef vector<int> vi;
  14. typedef pair<int,int> ii;
  15. typedef vector<ii> vii;
  16. #define IN(n) int n;scanf("%d",&n);
  17. #define FOR(i, m, n) for (int i(m); i < n; i++)
  18. #define REP(i, n) FOR(i, 0, n)
  19. #define F(n) REP(i, n)
  20. #define FF(n) REP(j, n)
  21. #define FT(m, n) FOR(k, m, n)
  22. #define aa first
  23. #define bb second
  24. void ga(int N,int *A){F(N)scanf("%d",A+i);}
  25. #define MX (1024)
  26. struct pt{
  27.     ll x,y;
  28.     pt operator-(pt r){return {x-r.x,y-r.y};}
  29.     pt operator+(pt r){return {x+r.x,y+r.y};}
  30.     bool operator<(const pt&r)const{return EQ(x,r.x)?y<r.y:x<r.x;}//< by X
  31.     bool operator==(const pt&r)const{return EQ(x,r.x)&&EQ(y,r.y);};
  32.     double dst(pt r={0,0}){return sqrt((x-r.x)*(x-r.x)+(y-r.y)*(y-r.y));}
  33.     ll XP(pt b){return x*b.y-y*b.x;}
  34.     double DT(pt&b){return x*b.x+y*b.y;}
  35.     bool gt(){return ~scanf("%lld%lld",&x,&y);}
  36. }p[MX*2];
  37. double XX(pt&a,pt&b,pt&c){return (a.x-c.x)*(b.y-c.y)-(b.x-c.x)*(a.y-c.y);}
  38. bool cp(pt a,pt b){return EQ(a.y,b.y)?a.x<b.x:a.y<b.y;}//< by Y
  39. ll TR(pt&a,pt&b,pt&c){return abs(a.XP(b)+b.XP(c)+c.XP(a));}
  40. ll N,K,S;
  41. int main(void){
  42.     IN(_)F(_){
  43.         scanf("%lld%lld",&N,&K),assert(N<MX),K<<=1,S=0;
  44.         F(N)p[i].gt();
  45.         F(N)FT(i+1,N)FOR(j,k+1,N)S+=TR(p[i],p[j],p[k])<=K;
  46.         printf("%lld\n",S);
  47.     }
  48.     return 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment