結果
問題 | No.1726 [Cherry 3rd Tune B] ジャマイカビアポン |
ユーザー | 👑 SPD_9X2 |
提出日時 | 2021-10-29 21:58:25 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,413 ms / 3,000 ms |
コード長 | 1,176 bytes |
コンパイル時間 | 418 ms |
コンパイル使用メモリ | 81,792 KB |
実行使用メモリ | 332,400 KB |
最終ジャッジ日時 | 2024-10-07 11:11:16 |
合計ジャッジ時間 | 22,600 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 39 |
ソースコード
""" 1725: X XYx XYxYXyx XYxYXyx Y XYxyXyx XYxYXyxYXYxyXyx Y XY 1726: コップを水平移動して、最大スコアを求めよ。 800*800*4 800*800の組み合わせに関して、 これだけ水平移動するとこれだけ利得 を全て計算すればよい """ import sys from sys import stdin def solve(): dic = {} for i in range(N): a,b = ab[i] p = P[i] for c,d in cd: x = c-a y = d-b tup = (x,y) if tup not in dic: dic[tup] = 0 dic[tup] += p ret = 0 for tup in dic: ret = max(ret , dic[tup]) return ret N,M = map(int,stdin.readline().split()) P = list(map(int,stdin.readline().split())) ab = [] cd = [] for i in range(N): a,b = map(int,stdin.readline().split()) ab.append( [a,b] ) for i in range(M): c,d = map(int,stdin.readline().split()) cd.append( [c,d] ) ans = 0 ans = max(ans , solve()) for i in range(N): ab[i][0] *= -1 ans = max(ans , solve()) for i in range(N): ab[i][1] *= -1 ans = max(ans , solve()) for i in range(N): ab[i][0] *= -1 ans = max(ans , solve()) print (ans)