結果
問題 | No.1525 Meximum Sum |
ユーザー | nrkt |
提出日時 | 2021-05-31 20:25:49 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 115 ms / 2,000 ms |
コード長 | 884 bytes |
コンパイル時間 | 213 ms |
コンパイル使用メモリ | 82,432 KB |
実行使用メモリ | 107,036 KB |
最終ジャッジ日時 | 2024-11-08 21:33:57 |
合計ジャッジ時間 | 3,721 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 51 ms
54,912 KB |
testcase_01 | AC | 50 ms
54,656 KB |
testcase_02 | AC | 50 ms
54,656 KB |
testcase_03 | AC | 51 ms
54,656 KB |
testcase_04 | AC | 49 ms
54,656 KB |
testcase_05 | AC | 51 ms
54,272 KB |
testcase_06 | AC | 51 ms
54,400 KB |
testcase_07 | AC | 50 ms
54,656 KB |
testcase_08 | AC | 92 ms
91,904 KB |
testcase_09 | AC | 101 ms
100,096 KB |
testcase_10 | AC | 70 ms
73,600 KB |
testcase_11 | AC | 78 ms
80,356 KB |
testcase_12 | AC | 96 ms
96,000 KB |
testcase_13 | AC | 108 ms
105,216 KB |
testcase_14 | AC | 107 ms
105,380 KB |
testcase_15 | AC | 109 ms
105,384 KB |
testcase_16 | AC | 108 ms
105,128 KB |
testcase_17 | AC | 108 ms
105,216 KB |
testcase_18 | AC | 107 ms
105,472 KB |
testcase_19 | AC | 109 ms
105,088 KB |
testcase_20 | AC | 107 ms
105,324 KB |
testcase_21 | AC | 115 ms
107,036 KB |
testcase_22 | AC | 107 ms
105,328 KB |
testcase_23 | AC | 111 ms
106,848 KB |
testcase_24 | AC | 111 ms
106,880 KB |
testcase_25 | AC | 115 ms
106,752 KB |
ソースコード
#!/usr/bin/env python3 import sys import math from bisect import bisect_right as br from bisect import bisect_left as bl sys.setrecursionlimit(2147483647) from heapq import heappush, heappop,heappushpop from collections import defaultdict from itertools import accumulate from collections import Counter from collections import deque from operator import itemgetter from itertools import permutations mod = 10**9 + 7 inf = float('inf') def I(): return int(sys.stdin.readline()) def LI(): return list(map(int,sys.stdin.readline().split())) n = I() a = LI() b = [-1] * (n) for i in range(n): b[a[i]] = i ans = 0 l = b[0] r = b[0] for i in range(n-1): if l <= b[i+1] <= r: continue if b[i+1] < l: ans += (i+1) * (l - b[i+1]) * (n - r) else: ans += (i+1) * (b[i+1] - r) * (l + 1) l = min(l, b[i+1]) r = max(r, b[i+1]) ans += n print(ans)