Add 15-04-24
This commit is contained in:
parent
30b823c6ab
commit
6008dcaf28
12
2024/04/15-04-24/a.py
Normal file
12
2024/04/15-04-24/a.py
Normal file
@ -0,0 +1,12 @@
|
||||
def square_size(meteors, t) -> int:
|
||||
posX = [m[0] + m[2]*t for m in meteors]
|
||||
posY = [m[1] + m[3]*t for m in meteors]
|
||||
win_size = (
|
||||
(max(posX)-min(posX)) *
|
||||
(max(posY)-min(posY))
|
||||
)
|
||||
return win_size
|
||||
|
||||
|
||||
N = int(input())
|
||||
meteors = [[int(i) for i in input().split()] for _ in range(N)]
|
17
2024/04/15-04-24/d.py
Normal file
17
2024/04/15-04-24/d.py
Normal file
@ -0,0 +1,17 @@
|
||||
from math import sqrt
|
||||
N=int(input())
|
||||
|
||||
def premier(x):
|
||||
for i in range(2,int(sqrt(x))+1):
|
||||
if x%i==0:
|
||||
return False
|
||||
return True
|
||||
|
||||
if premier(N):
|
||||
print('N')
|
||||
else:
|
||||
k=sqrt(N)
|
||||
if int(k)**2==N and premier(k):
|
||||
print('N')
|
||||
else:
|
||||
print('Y')
|
46
2024/04/15-04-24/e.py
Normal file
46
2024/04/15-04-24/e.py
Normal file
@ -0,0 +1,46 @@
|
||||
N = int(input())
|
||||
customers = [int(i) for i in input().split()]
|
||||
|
||||
results = [0 for _ in range(N+1)]
|
||||
# contient num. cust suivi de:
|
||||
# 0: jsp
|
||||
# 1: forcément G
|
||||
# 2: forcément S
|
||||
|
||||
stack = [] # alt, vu
|
||||
def depop(action):
|
||||
seen = False
|
||||
for i, (el, se) in enumerate(reversed(stack)):
|
||||
if el == action:
|
||||
del stack[len(stack)-i-1]
|
||||
if se and seen:
|
||||
raise ValueError
|
||||
elif se:
|
||||
return 1 # G
|
||||
elif seen:
|
||||
return 2 # S
|
||||
return 1 # G
|
||||
|
||||
stack[len(stack)-i-1] = (el, True)
|
||||
seen = True
|
||||
|
||||
def load_results():
|
||||
for action in customers:
|
||||
#print(action, stack)
|
||||
if action > 0:
|
||||
stack.append((abs(action), False))
|
||||
else:
|
||||
results[abs(action)] = depop(abs(action))
|
||||
|
||||
try:
|
||||
load_results()
|
||||
for i in results[1:]:
|
||||
if i==0:
|
||||
print("U", end="") # Unknown
|
||||
elif i==1:
|
||||
print("G", end="")
|
||||
else:
|
||||
print("S", end="")
|
||||
print()
|
||||
except ValueError:
|
||||
print("*")
|
38
2024/04/15-04-24/i.py
Normal file
38
2024/04/15-04-24/i.py
Normal file
@ -0,0 +1,38 @@
|
||||
from typing import TypeVar
|
||||
|
||||
Nb = TypeVar("Nb", int, float)
|
||||
|
||||
def area(points: list[tuple[Nb, Nb]], count_border: bool=True) -> int:
|
||||
def distance(p1: tuple[Nb, Nb], p2: tuple[Nb, Nb]) -> float:
|
||||
return abs(p1[0]-p2[0]) + abs(p1[1]-p2[1])
|
||||
|
||||
def get_info(x1: Nb, y1: Nb, x2: Nb, y2: Nb) -> Nb:
|
||||
return x1*y2 - y1*x2
|
||||
|
||||
def inner_area() -> float:
|
||||
first_x, first_y = points[0]
|
||||
prev_x, prev_y = first_x, first_y
|
||||
res = 0
|
||||
|
||||
for i in range(len(points)-1):
|
||||
next_x, next_y = points[i+1]
|
||||
res = res + get_info(prev_x, prev_y, next_x, next_y)
|
||||
prev_x = next_x
|
||||
prev_y = next_y
|
||||
res = res + get_info(prev_x, prev_y, first_x, first_y)
|
||||
return abs(res)/2.0
|
||||
|
||||
def border() -> float:
|
||||
distances = [distance(points[i], points[i+1]) for i in range(len(points)-1)]
|
||||
distances.append(distance(points[-1], points[0]))
|
||||
return sum(distances)
|
||||
|
||||
if count_border:
|
||||
return int(inner_area()+border()//2 +1)
|
||||
|
||||
return int(inner_area())
|
||||
|
||||
N, R = map(int, input().split())
|
||||
crops =[[int(i) for i in input().split()] for _ in range(N)]
|
||||
|
||||
current_area = area(crops, count_border=False)
|
41
2024/04/15-04-24/k.py
Normal file
41
2024/04/15-04-24/k.py
Normal file
@ -0,0 +1,41 @@
|
||||
from functools import cache
|
||||
|
||||
voyelles = ["A", "E", "I", "O", "U", "Y"]
|
||||
|
||||
N = int(input())
|
||||
words = [input()[:3] for _ in range(N)]
|
||||
|
||||
|
||||
@cache
|
||||
def find_consonant(w_index=0, previous=0):
|
||||
if w_index == len(words):
|
||||
return 0
|
||||
|
||||
word = words[w_index]
|
||||
|
||||
valid = []
|
||||
|
||||
count = previous
|
||||
for i, w in enumerate(word):
|
||||
if w not in voyelles:
|
||||
count += 1
|
||||
else:
|
||||
count = 0
|
||||
|
||||
# print(i, word[:i+1], count)
|
||||
|
||||
if count != 3:
|
||||
val = find_consonant(w_index=w_index+1, previous=count)
|
||||
if val == "*":
|
||||
continue
|
||||
valid.append(val+i+1)
|
||||
else:
|
||||
break
|
||||
|
||||
if valid == []:
|
||||
return "*"
|
||||
return min(valid)
|
||||
|
||||
|
||||
|
||||
print(find_consonant())
|
Loading…
Reference in New Issue
Block a user