Advertisement
DimaT1

614_bad

Sep 8th, 2016
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.76 KB | None | 0 0
  1.  
  2. from math import sqrt
  3.  
  4. class cDot:
  5.   x = y = 0
  6.   def __init__(self, _x, _y):
  7.     self.x = _x
  8.     self.y = _y
  9.  
  10.   def __str__(self):
  11.     return 'cDot(' + str(self.x) + ', ' + str(self.y) + ')'
  12.  
  13.  
  14. class cVec:
  15.   x = y = 0
  16.   def __init__(self, _x, _y):
  17.     self.x = _x
  18.     self.y = _y
  19.  
  20.   def __str__(self):
  21.     return 'cVec(' + str(self.x) + ', ' + str(self.y) + ')'
  22.  
  23.  
  24. def fillDots():
  25.   dots = []
  26.   for i in range(3):
  27.     x, y = map(int, input().split())
  28.     dots.append(cDot(x, y))
  29.  
  30.   minxDt = 0;
  31.   for i in range(1, 3):
  32.     if(dots[minxDt].x > dots[i].x):
  33.       minxDt = i
  34.   dots[0], dots[minxDt] = dots[minxDt], dots[0]
  35.  
  36.   maxxDt = 0;
  37.   for i in range(1, 3):
  38.     if(dots[maxxDt].x < dots[i].x):
  39.       maxxDt = i
  40.   dots[2], dots[maxxDt] = dots[maxxDt], dots[2]    
  41.   return dots
  42.  
  43. def fillVects(dots):
  44.   vects = []
  45.   vects.append(cVec(dots[1].x - dots[0].x, dots[1].y - dots[0].y))
  46.   vects.append(cVec(dots[2].x - dots[1].x, dots[2].y - dots[1].y))
  47.   vects.append(cVec(dots[0].x - dots[2].x, dots[0].y - dots[2].y))
  48.   return vects
  49.  
  50. def fillPVects(dots, p):
  51.   pvects = []
  52.   pvects.append(cVec(p.x - dots[0].x, p.y - dots[0].y))
  53.   pvects.append(cVec(p.x - dots[1].x, p.y - dots[1].y))
  54.   pvects.append(cVec(p.x - dots[2].x, p.y - dots[2].y))
  55.   return pvects
  56.  
  57. def mult(a, b):
  58.   return (a.x * b.y) - (b.x * a.y)
  59.  
  60. #******************************************** main
  61.  
  62. dots  = []
  63. vects = []
  64. pvects = []
  65.  
  66. dots = fillDots()
  67. x, y = map(int, input().split())
  68. p = cDot(x, y)
  69.  
  70. vects  = fillVects(dots)
  71. pvects = fillPVects(dots, p)
  72.  
  73. sign = []
  74. for i in range(3):
  75.   if mult(pvects[i], vects[i]) >= 0:
  76.     sign.append(1)
  77.   else:
  78.     sign.append(0)
  79.    
  80. if (sign[0] == sign[1]) and (sign[1] == sign[2]):
  81.   print('In')
  82. else:
  83.   print('Out')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement