Lại là dãy số

Xem dạng PDF

Gửi bài giải

Điểm: 1,63 (OI)
Giới hạn thời gian: 4.5s
Giới hạn bộ nhớ: 512M
Input: stdin
Output: stdout

Nguồn bài:
COCI
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Mirko có một dãy số, và cô không thích nó nữa, cô quyết định bán nó đi vào ngày mai. Khi một dãy số nào đó được bán ra ngoài, cô sẽ nhận được giá tiền là min.max.len với min là số nhỏ nhất trong dãy, max là số lớn nhất trong dãy, và len là độ dài của dãy số đó. Cô quyết định bán một đoạn con liên tiếp trong dãy số của cô. Cố muốn biết rằng, tổng giá trị của tất cả các dãy con liên tiếp trong dãy số của cô là bao nhiêu.

Input

  • Dòng đầu là số nguyên ~N~ (~N \leq 500.000~)
  • Dòng sau gồm ~N~ số thể hiện dãy số của Mirko (có giá trị trong đoạn ~[1, 10^{8}]~)

Output

Ghi ra kết quả theo modulo ~10^{9}~

Sample Input

2
1 3

Sample Output

16

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • -1
    NguyenKhangNinh_69  đã bình luận lúc 19, Tháng 12, 2025, 14:32

    nguồn: https://dmoj.ca/problem/coci14c2p6


  • 3
    pppssslc  đã bình luận lúc 13, Tháng 10, 2025, 12:49

    bài y hệt tương tự: Free Contest 62 - SEQAG


  • 5
    pppssslc  đã bình luận lúc 23, Tháng 8, 2025, 1:20 sửa 3

    Unoffical solution:

    Chia để trị + Kĩ thuật hai con trỏ + Mảng tiền tố

    • Sử dụng chia để trị để chia nhỏ dãy ra.
    • Cách tính phần vắt ngang:
    • Ta sử dụng hai con trỏ kết hợp với mảng tiền tố để tính.

    ĐPT: ~O(n\log_2{n})~


  • -32
    datdo1309  đã bình luận lúc 22, Tháng 9, 2023, 8:57

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • 16
    nguyenphong233  đã bình luận lúc 16, Tháng 1, 2022, 7:35

    ai giải thích test đề cho mình được k ạ ?


    • 20
      vidut_206_CNH  đã bình luận lúc 17, Tháng 1, 2022, 4:20

      nó là: 1*1*1 + 3*3*1 + 1*3*2 = 1 + 9 + 6 = 16


      • 15
        nguyenphong233  đã bình luận lúc 17, Tháng 1, 2022, 5:23

        yee e cảm ơn ngài