많은 것을 추가했다. 하지만 선분의 길이(17386)은 왜 틀린건지 모르겠다. CCW를 해야될것 같다.

This commit is contained in:
2020-08-06 16:32:40 +09:00
parent f74f3c4ec7
commit 99c9db415d
6 changed files with 70 additions and 0 deletions

35
zeta_python/17386.py Normal file
View File

@@ -0,0 +1,35 @@
x1, y1, x2, y2 = map(int, input().split())
x3, y3, x4, y4 = map(int, input().split())
vx1, vy1 = x2 - x1, y2 - y1
vx2, vy2 = x4 - x3, y4 - y3
if vx1 == 0 and vy1 == 0:
print(0)
elif vx1 == 0 or vy1 == 0:
if vx1 == 0:
rx = x1
ry = (vy2/vx2) * (rx - x3) + y3
t0 = (ry - y1) / vy1
t1 = (rx - x3) / vy2
else:
rx = x3
ry = (vy1 / vx1) * (rx-x1) + y1
t0 = (rx - x1) / vx1
t1 = (ry - y3) / vy2
if t0 < 0 or t0 > 1 or t1 < 0 or t1 > 1: print(0)
else: print(1)
else:
a0 = vy1 / vx1
a1 = vy2 / vx2
rx = (a0 * x1 - a1 * x3 + y3 - y1 )/ (a0 - a1)
ry = a0 * (rx - x1) + y1
t0 = (rx - x1) / vx1
t1 = (rx - x3) / vx2
if a0 == a1: print(0)
elif t0 < 0 or t0 > 1 or t1 < 0 or t1 > 1: print(0)
else:
print(1)

1
zeta_python/2162.py Normal file
View File

@@ -0,0 +1 @@
T = int(input())

View File

@@ -0,0 +1,16 @@
import math
T = int(input())
for i in range(T):
x, y = map(int, input().split())
distance = y - x
disted = distance ** (1 / 2)
upper = math.ceil(disted)
lowersq = (upper - 1)**2
uppersq = upper**2
if (lowersq + uppersq)/2 <= distance:
print(upper * 2 -1)
else:
print(upper * 2 - 2)

View File

@@ -0,0 +1,11 @@
N, M = map(int, input().split())
sqs = [[0] + list(map(int, input().split())) + [0] for i in range(N)]
sqs.insert(0, list(0 for i in range(M + 2)))
sqs.append(list(0 for i in range(M + 2)))
total = 2 * N * M
for i in range(N + 1):
for j in range(M + 1):
total += abs(sqs[i][j] - sqs[i][j + 1])
total += abs(sqs[i][j] - sqs[i + 1][j])
print(total)

View File

@@ -0,0 +1,5 @@
N = int(input())
points = [list(map(int, input().split())) for i in range(N)]
points += [points[0]]
N +=1
print("%.1f" % (abs(sum(points[i][0] * points[j][1] for i, j in zip(range(N - 1), range(1, N))) - sum(points[j][0] * points[i][1] for i, j in zip(range(N - 1), range(1, N))))/2))

View File

@@ -0,0 +1,2 @@
R1, S = map(int, input().split())
print(2 * S - R1)