結果
| 問題 | 
                            No.1028 闇討ち
                             | 
                    
| コンテスト | |
| ユーザー | 
                             vwxyz
                         | 
                    
| 提出日時 | 2024-07-17 05:34:28 | 
| 言語 | PyPy3  (7.3.15)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 390 ms / 2,000 ms | 
| コード長 | 647 bytes | 
| コンパイル時間 | 196 ms | 
| コンパイル使用メモリ | 82,320 KB | 
| 実行使用メモリ | 132,352 KB | 
| 最終ジャッジ日時 | 2024-07-17 05:34:35 | 
| 合計ジャッジ時間 | 5,254 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge2 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 2 | 
| other | AC * 20 | 
ソースコード
N=int(input())
A=[list(map(int,input().split())) for i in range(N)]
idx=[[] for a in range(N)]
for i in range(N):
    for j in range(N):
        A[i][j]-=1
        idx[A[i][j]].append((i,j))
ans=N*(N-1)//2*N
for a in range(N):
    imos=[0]*(N+2)
    for i,j in idx[a]:
        l,r=i-j,i+j
        if 0<l:
            imos[0]+=l
            imos[1]-=l
            imos[1]+=-1
            imos[l+1]-=-1
        if r<N-1:
            imos[r+1]+=1
            imos[N]-=1
            imos[N]+=-(N-r-1)
            imos[N+1]-=-(N-r-1)
    for _ in range(2):
        for i in range(1,N+2):
            imos[i]+=imos[i-1]
    ans+=min(imos[:N])
print(ans)
            
            
            
        
            
vwxyz