[PYTHON] concours yukicoder 271 Record de participation

concours yukicoder 271 Record de participation

A 1264 010

010 peut être utilisé une fois avec 010 → 101, 0100 peut être utilisé deux fois avec 0100 → 1010 → 1101 et 01000 peut être utilisé trois fois avec 01000 → 10100 → 11010 → 11101.

N = int(input())

print('01' + '0' * N)

B 1265 Balloon Survival

Puisque N ≤ 1000, * O * ( N </ i> 2 </ sup> log N </ i>) peut être géré, alors indiquez les distances de toutes les combinaisons et commencez par la plus petite. Vous pouvez simuler la disparition côte à côte. Enregistrez les bulles qui ont déjà disparu et ignorez-les lorsqu'elles entrent en collision. Le nombre de bulles qui entrent en collision avec la première bulle est la réponse.

N = int(input())
xy = [tuple(map(int, input().split())) for _ in range(N)]

a = []
for i in range(N - 1):
    for j in range(i + 1, N):
        d = (xy[i][0] - xy[j][0]) * (xy[i][0] - xy[j][0]) + (xy[i][1] - xy[j][1]) * (xy[i][1] - xy[j][1])
        a.append((d, i, j))
a.sort()

result = 0
t = set()
for _, i, j in a:
    if i in t or j in t:
        continue
    if i == 0:
        result += 1
        t.add(j)
    else:
        t.add(i)
        t.add(j)
print(result)

Recommended Posts