結果
問題 | No.455 冬の大三角 |
ユーザー |
|
提出日時 | 2017-03-26 15:59:55 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 33 ms / 2,000 ms |
コード長 | 1,177 bytes |
コンパイル時間 | 77 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 11,008 KB |
最終ジャッジ日時 | 2024-06-30 00:57:44 |
合計ジャッジ時間 | 3,852 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 54 |
ソースコード
def read_data():H, W = map(int, input().split())Ss = [input().rstrip() for h in range(H)]return H, W, Ssdef solve(H, W, Ss):x1, y1, x2, y2 = get_star_pos(H, W, Ss)x3, y3 = put_star(H, W, x1, y1, x2, y2)print_stars(H, W, x1, y1, x2, y2, x3, y3)def get_star_pos(H, W, Ss):xys = []for y, S in enumerate(Ss):for x, c in enumerate(S):if c == '*':xys.append(x)xys.append(y)return xysdef print_stars(H, W, x1, y1, x2, y2, x3, y3):star_pos = [(x1, y1), (x2, y2), (x3, y3)]for h in range(H):row = []for w in range(W):if (w, h) in star_pos:row.append('*')else:row.append('-')print(''.join(row))def put_star(H, W, x1, y1, x2, y2):for x in range(W):for y in range(H):if is_valid(x1, y1, x2, y2, x, y):return x, yraise RuntimeError("Couldn't find star pos.")def is_valid(x1, y1, x2, y2, x3, y3):x1 = x1 - x3x2 = x2 - x3y1 = y1 - y3y2 = y2 - y3return x1 * y2 != x2 * y1H, W, Ss = read_data()solve(H, W, Ss)