Submission #1605122
Source Code Expand
from collections import defaultdict, Counter from itertools import product, groupby, count, permutations, combinations from math import pi, sqrt from collections import deque from bisect import bisect, bisect_left, bisect_right INF = float("inf") def main(): N = int(input()) a = list(map(int, input().split())) idx = {} for i in range(N): idx[a[i]] = i ans = 0 left_idx, right_idx = list(range(N + 2)), list(range(N + 2)) for a in range(N, 0, -1): i = idx[a] l, r = left_idx[i], right_idx[i] ans += a * (i - l + 1) * (r - i + 1) left_idx[r + 1] = l right_idx[l - 1] = r print(ans) if __name__ == '__main__': main()
Submission Info
Submission Time | |
---|---|
Task | B - Minimum Sum |
User | MitI_7 |
Language | Python (3.4.3) |
Score | 400 |
Code Size | 739 Byte |
Status | AC |
Exec Time | 247 ms |
Memory | 46692 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 400 / 400 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | example0, example1, example2 |
All | corner0, corner1, corner2, corner3, example0, example1, example2, maxrand0, maxrand1, maxrand2, rand0, rand1, rand2 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
corner0 | AC | 188 ms | 45624 KB |
corner1 | AC | 186 ms | 45620 KB |
corner2 | AC | 20 ms | 3316 KB |
corner3 | AC | 194 ms | 46688 KB |
example0 | AC | 20 ms | 3316 KB |
example1 | AC | 20 ms | 3316 KB |
example2 | AC | 20 ms | 3316 KB |
maxrand0 | AC | 244 ms | 45748 KB |
maxrand1 | AC | 247 ms | 46692 KB |
maxrand2 | AC | 245 ms | 45624 KB |
rand0 | AC | 20 ms | 3316 KB |
rand1 | AC | 20 ms | 3316 KB |
rand2 | AC | 20 ms | 3316 KB |