結果
| 問題 |
No.1028 闇討ち
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-04-17 22:24:03 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 797 bytes |
| コンパイル時間 | 346 ms |
| コンパイル使用メモリ | 12,672 KB |
| 実行使用メモリ | 51,668 KB |
| 最終ジャッジ日時 | 2024-10-03 13:53:58 |
| 合計ジャッジ時間 | 10,255 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 7 TLE * 1 -- * 12 |
ソースコード
import numpy as np
N = int(input())
grid = []
for i in range(N):
row = [int(c) for c in input().split(' ')]
grid.append(row)
grid = np.array(grid)
j_s = np.tile(np.arange(N), (N,1))
i_s = np.tile(np.arange(N).reshape(N, 1), N)
# 各社員に対して、最適な攻撃位置を求める
attack_distance = np.zeros_like(grid)
optimal_sum = 0
for k in range(N):
ks_house = np.where(grid == k+1, 1, 0)
ks_house_distance = []
for x in range(N):
# 位置(x, 1)から攻撃したときのドローンの距離の総和
distances = np.where(ks_house == 1,
np.where((i_s + j_s >= x) & (i_s - j_s <= x), j_s, abs(x - i_s)),
0)
ks_house_distance.append(distances.sum())
optimal_sum += np.min(ks_house_distance)
print(optimal_sum)