結果
| 問題 | 
                            No.1391 ±1 Abs Sum
                             | 
                    
| コンテスト | |
| ユーザー | 
                            👑  terry_u16
                         | 
                    
| 提出日時 | 2021-02-12 22:31:35 | 
| 言語 | PyPy3  (7.3.15)  | 
                    
| 結果 | 
                             
                                WA
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 756 bytes | 
| コンパイル時間 | 482 ms | 
| コンパイル使用メモリ | 81,904 KB | 
| 実行使用メモリ | 106,364 KB | 
| 最終ジャッジ日時 | 2024-07-19 23:10:17 | 
| 合計ジャッジ時間 | 4,959 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge1 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 8 WA * 26 | 
ソースコード
n, k = map(int, input().split())
a = list(map(int, input().split()))
current = 0
for i in range(n):
    if i < k:
        current += abs(a[i] - a[0])
    else:
        current -= abs(a[i] - a[0])
minimum = current
nextSub = k
for i in range(1, n):
    plus = n - max(nextSub - 1, i) + i - (nextSub - k)
    minus = n - plus
    current += (plus - minus) * abs(a[i] - a[i - 1])
    while nextSub < n:
        left = a[nextSub - k]
        right = a[nextSub]
        leftDiff = abs(left - a[i])
        rightDiff = abs(right - a[i])
        if leftDiff > rightDiff:
            current -= 2 * leftDiff
            current += 2 * rightDiff
            nextSub += 1
        else:
            break
    
    minimum = min(minimum, current)
print(minimum)
            
            
            
        
            
terry_u16