Advertisement
Jasir

Picks

Nov 2nd, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.62 KB | None | 0 0
  1. struct point{
  2.     int x, y;
  3. };
  4.  
  5. point P[mx];
  6.  
  7. int area(point a, point b){
  8.     return (a.x * b.y - b.x * a.y);
  9. }
  10.  
  11. int polyarea(int n){
  12.     int ans = area(P[n - 1], P[0]);
  13.     for(int i=1;i<n;i++){
  14.         ans += area(P[i-1], P[i]);
  15.     }
  16.     return llabs(ans)/2;
  17. }
  18.  
  19. int pointinline(int n){
  20.     int ans = __gcd(llabs(P[0].x - P[n-1].x), llabs(P[0].y - P[n-1].y));
  21.     for(int i=1;i<n;i++){
  22.         ans += __gcd(llabs(P[i-1].x - P[i].x), llabs(P[i-1].y - P[i].y));
  23.     }
  24.     return ans;
  25. }
  26.  
  27. int picks(int n){
  28.     int B = pointinline(n);
  29.     int A = polyarea(n);
  30.     int I = A - B/2 + 1;
  31.     return I;
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement