Cho dãy \(n\) số nguyên dương \(a_{1},\ a_{2},\ \ldots,\ a_{n}\).
Hàm \(f(l,\ r)\ \)được định nghĩa như sau:
\(f(l,\ r) = min(a_{l},\ a_{l + 1},\ \ldots,\ a_{r})*max(a_{l},\ a_{l + 1},\ \ldots,\ a_{r})*(r - l + 1)\).
Yêu cầu: Hãy tính tổng \(f(l,\ r)\ \)với mọi cặp \(l,\ r\ \)thỏa mãn \(1 \leq l \leq r \leq n\).
Dữ liệu vào:
Dòng đầu tiên chứa số nguyên dương \(n;\)
Dòng thứ hai chứa \(n\) số nguyên dương \(a_{1},\ a_{2},\ \ldots,\ a_{n}\ (1 \leq a_{i} \leq 10^{8},\forall\ i \in \lbrack 1,\ n\rbrack)\).
Kết quả: Ghi một số nguyên dương duy nhất là tổng tìm được theo modulo \(\mathbf{10}^{\mathbf{9}}\mathbf{+ 7}\).
Ví dụ:
| Input | Output | Giải thích |
|---|---|---|
| 3 2 3 9 | 214 |
|
Chú ý:
| Subtasks | % điểm | Giới hạn |
|---|---|---|
| 1 | 40% | \(n \leq 5000\); |
| 2 | 30% | \(n \leq 3 \times 10^{5},\ a_{1} \leq a_{2} \leq \ldots \leq a_{n}\); |
| 3 | 30% | \(n \leq 10^{5},a_{i} \leq 500,\ \forall\ i \in \lbrack 1,\ n\rbrack\). |
| Code tích cực |
|---|
| Trong 24h |
| Trong 7 ngày |
|
| Trong 30 ngày |
|
| Kỳ thi |
|---|
| Lập trình cơ bản |
| Luyện thi Chuyên Tin - CB |
| Luyện thi Chuyên Tin - NC |
| Tuyển tập Đề thi Tuyển sinh 10 |
| Tuyển tập Đề thi HSG THCS |
| Tuyển tập Đề thi HSG THPT |
| Tuyển tập Đề thi HSG Chọn đội tuyển |
| Thống kê |
|---|
|
AC/Sub: 120817/226949 Pascal: 18142 C++: 157988 Python: 50747 Lượt xem/tải tests: 42758 |