| Task: | Point in Polygon |
| Sender: | banghalq |
| Submission time: | 2025-11-10 16:53:21 +0200 |
| Language: | Python3 (PyPy3) |
| Status: | READY |
| Result: | WRONG ANSWER |
| test | verdict | time | |
|---|---|---|---|
| #1 | WRONG ANSWER | 0.14 s | details |
| #2 | ACCEPTED | 0.18 s | details |
| #3 | ACCEPTED | 0.04 s | details |
| #4 | ACCEPTED | 0.04 s | details |
| #5 | ACCEPTED | 0.04 s | details |
| #6 | WRONG ANSWER | 0.04 s | details |
| #7 | ACCEPTED | 0.04 s | details |
| #8 | ACCEPTED | 0.04 s | details |
| #9 | ACCEPTED | 0.04 s | details |
| #10 | ACCEPTED | 0.04 s | details |
| #11 | ACCEPTED | 0.04 s | details |
| #12 | ACCEPTED | 0.04 s | details |
| #13 | ACCEPTED | 0.05 s | details |
| #14 | UNKNOWN | -- | details |
Code
n, m = [int(x) for x in input().split()]
polygon = []
for _ in range(n):
x, y = [int(x) for x in input().split()]
polygon.append((x, y))
def cross_product(a, b):
return a[0]*b[1] - a[1]*b[0]
def dans_polygon(point) -> bool:
"""
Permet de savoir si le polygon 1 est dans le polygon 2
Cimer Emile
"""
est_dans_pol = False
for i in range(n):
p0 = polygon[i]
p1 = polygon[(i+1)%n]
crossprod_point = cross_product((point[0]-p0[0], point[1]-p0[1]), (point[0]-p1[0], point[1]-p1[1]))
if crossprod_point == 0:
return True, True
if min(p1[0],p0[0]) <= point[0] < max(p1[0],p0[0]):
coef_dir = (p0[1] - p1[1])/(p0[0]- p1[0])
coef_b = p0[1] - p0[0] * coef_dir
if point[1] >= (point[0]*coef_dir + coef_b):
est_dans_pol = not est_dans_pol
return est_dans_pol, False
res = []
for _ in range(m):
x, y = [int(x) for x in input().split()]
loc_res = dans_polygon((x, y))
if loc_res[0]:
if loc_res[1]:
res.append("BOUNDARY")
else:
res.append("INSIDE")
else:
res.append("OUTSIDE")
for elt in res:
print(elt)
Test details
Test 1
Verdict: WRONG ANSWER
| input |
|---|
| 100 1000 -7 -19 91 77 100 100 64 60 ... |
| correct output |
|---|
| INSIDE OUTSIDE INSIDE INSIDE INSIDE ... |
| user output |
|---|
| INSIDE OUTSIDE INSIDE INSIDE INSIDE ... |
Feedback: Incorrect character on line 10 col 1: expected "OUTSIDE", got "BOUNDARY"
Test 2
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 365625896 -113418831 278762563 38777445 250367343 -96991975 175866909 -129766978 ... |
| correct output |
|---|
| OUTSIDE OUTSIDE INSIDE OUTSIDE OUTSIDE ... |
| user output |
|---|
| OUTSIDE OUTSIDE INSIDE OUTSIDE OUTSIDE ... |
Test 3
Verdict: ACCEPTED
| input |
|---|
| 4 1 1 5 5 5 5 1 1 1 ... |
| correct output |
|---|
| INSIDE |
| user output |
|---|
| INSIDE |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 4 1 1 5 5 5 5 1 1 1 ... |
| correct output |
|---|
| OUTSIDE |
| user output |
|---|
| OUTSIDE |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 4 1 1 100 2 50 1 20 0 50 ... |
| correct output |
|---|
| INSIDE |
| user output |
|---|
| INSIDE |
Test 6
Verdict: WRONG ANSWER
| input |
|---|
| 8 1 0 0 0 2 1 1 2 2 ... |
| correct output |
|---|
| INSIDE |
| user output |
|---|
| BOUNDARY |
Feedback: Incorrect character on line 1 col 1: expected "INSIDE", got "BOUNDARY"
Test 7
Verdict: ACCEPTED
| input |
|---|
| 4 4 0 0 3 0 3 4 0 4 ... |
| correct output |
|---|
| INSIDE BOUNDARY OUTSIDE BOUNDARY |
| user output |
|---|
| INSIDE BOUNDARY OUTSIDE BOUNDARY |
Test 8
Verdict: ACCEPTED
| input |
|---|
| 6 1 0 0 0 2 3 1 2 2 ... |
| correct output |
|---|
| INSIDE |
| user output |
|---|
| INSIDE |
Test 9
Verdict: ACCEPTED
| input |
|---|
| 3 1 0 0 1 1000000000 -3 0 1 1 |
| correct output |
|---|
| OUTSIDE |
| user output |
|---|
| OUTSIDE |
Test 10
Verdict: ACCEPTED
| input |
|---|
| 3 1 -100000 0 -1000000000 -999999999 1000000000 1000000000 0 0 |
| correct output |
|---|
| OUTSIDE |
| user output |
|---|
| OUTSIDE |
Test 11
Verdict: ACCEPTED
| input |
|---|
| 3 1 -100000 0 -999999999 -1000000000 1000 1000 0 0 |
| correct output |
|---|
| INSIDE |
| user output |
|---|
| INSIDE |
Test 12
Verdict: ACCEPTED
| input |
|---|
| 4 1 -4 1 -6 1 -6 -1 -4 -1 ... |
| correct output |
|---|
| INSIDE |
| user output |
|---|
| INSIDE |
Test 13
Verdict: ACCEPTED
| input |
|---|
| 3 1 0 10 0 -10 10 0 1 0 |
| correct output |
|---|
| INSIDE |
| user output |
|---|
| INSIDE |
Test 14
Verdict: UNKNOWN
| input |
|---|
| 3 1000 -536621709 -536621709 955833081 955833081 -1 1 -439278425 -439278425 ... |
| correct output |
|---|
| BOUNDARY BOUNDARY BOUNDARY BOUNDARY BOUNDARY ... |
| user output |
|---|
| (not available) |
