結果
| 問題 |
No.1265 Balloon Survival
|
| コンテスト | |
| ユーザー |
FromBooska
|
| 提出日時 | 2023-03-10 23:17:00 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 1,855 ms / 2,000 ms |
| コード長 | 835 bytes |
| コンパイル時間 | 153 ms |
| コンパイル使用メモリ | 82,516 KB |
| 実行使用メモリ | 134,116 KB |
| 最終ジャッジ日時 | 2024-09-18 05:27:46 |
| 合計ジャッジ時間 | 22,004 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 32 |
ソースコード
# 全点対の距離、昇順で並べる
# popしてなければ両方pop
# 1とpopしていないbaloonであれば取り除く=pop
# TLEしたのでmain()を入れる
def main():
from sys import stdin
N = int(stdin.readline())
XY = []
for i in range(N):
x, y = map(int, stdin.readline().split())
XY.append([x, y])
d_list = []
for i in range(N):
for j in range(i+1, N):
d = (XY[i][0]-XY[j][0])**2 + (XY[i][1]-XY[j][1])**2
d_list.append((d, i, j))
d_list.sort()
pop = [0]*N
ans = 0
for d, i, j in d_list:
if i == 0:
if pop[j] == 0:
pop[j] = 1
ans += 1
else:
if pop[i] == 0 and pop[j] == 0:
pop[i] = 1
pop[j] = 1
print(ans)
main()
FromBooska