trang chủ / đề bài / dhbb19_supcom

Siêu máy tính

Đề bài

Mô tả

Công ty Long Vân giới thiệu siêu máy tính có khả năng thực hiện được tỉ tỉ phép toán trong vòng một giây. Để chứng minh sức mạnh của siêu máy tính, công ty đã cho máy tính thực hiện một số lượng rất lớn các thao tác như sau:

  • Ban đầu, dãy S không có phần tử nào;
  • Có t thao tác, thao tác thứ i (i=1,2,…,t) thuộc một trong ba loại:
    1. Thêm vào dãy S một phần tử mới xi;
    2. Tính tổng các phần tử của dãy S hiện tại có giá trị nằm trong đoạn [ai,bi];
    3. Sắp xếp dãy S hiện tại theo thứ tự không giảm rồi tính tổng tất cả các phần tử có thứ tự từ pi đến qi (1≤pi≤qi≤|S|, trong đó |S| là số lượng phần tử của dãy S hiện tại). Sau đó, chèn vào dãy S hai phần tử, một phần tử có giá trị bằng phần tử có thứ tự pi cộng với 1 và phần tử có giá trị bằng phần tử có thứ tự qi trừ đi 1.

Các phần tử được chèn ở thao tác loại 3 có thể có giá trị nằm ngoài đoạn [−109,109]. Nếu dãy S không có phần tử nào có giá trị trong đoạn [ai,bi] thì tổng ở thao tác loại 2 bằng 0.

Công ty sẽ trao thưởng cho người nào kiểm chứng được kết quả mà siêu máy tính đưa ra.

Yêu cầu: Cho dãy gồm t thao tác, với mỗi thao tác loại 2 và 3 hãy đưa ra câu trả lời tương ứng.

Dữ liệu vào

  • Dòng đầu chứa số nguyên dương t;
  • Dòng thứ i trong t dòng tiếp theo mô tả thao tác thứ i theo khuôn dạng: bắt đầu là số ki (ki bằng 1 hoặc 2 hoặc 3). Nếu là thao tác loại 1 thì tiếp theo là một số nguyên xi (−109≤xi≤109), nếu là thao tác loại 2 thì tiếp theo là hai số nguyên ai,bi (−109≤ai≤bi≤109), còn nếu là thao tác loại 3 thì tiếp theo là hai số nguyên dương pi,qi (1≤pi≤qi≤|S|).

Dữ liệu ra

In ra một số dòng, mỗi dòng chứa một số lần lượt là các câu trả lời cho các thao tác loại 2, 3 theo thứ tự xuất hiện ở dữ liệu vào. Dữ liệu đảm bảo có ít nhất một thao tác loại 2 hoặc 3.

Ràng buộc

  • 1≤t≤105;
  • −109≤xi≤109; −109≤ai≤bi≤109; 1≤pi≤qi≤|S|.

Subtasks

  • Có 40% số test ứng với 40% số điểm có t không vượt quá 103;
  • Có 40% số test khác ứng với 40% số điểm có t không vượt quá 105 và không có thao tác loại 3;
  • Có 20% số test còn lại ứng với 20% số điểm có t không vượt quá 105.

Ví dụ

Input Output Giải thích
7
1 5
1 3
1 1
2 2 4
1 2
3 2 3
2 2 4
3
5
10
Sau ba thao tác đầu, S=(5,3,1), tổng các phần tử trong đoạn [2,4] là 3. Thêm 2: S=(5,3,1,2). Thao tác loại 3: sắp xếp được S=(1,2,3,5), đưa ra 2+3=5, rồi chèn 2+1=3 và 3−1=2, được S=(1,2,3,5,3,2). Cuối cùng tổng các phần tử trong đoạn [2,4] là 2+3+3+2=10.
6
1 -2
1 4
3 1 1
3 2 4
2 -1 3
2 -5 -3
-2
1
1
-3
Ví dụ bổ sung (không có trong đề gốc). Thao tác 3 với p=q=1 trên (−2,4): đưa ra −2, chèn −2+1=−1 và −2−1=−3. Thao tác tiếp theo trên (−3,−2,−1,4): đưa ra −2−1+4=1, chèn −1 và 3. Khi đó S sắp xếp là (−3,−2,−1,−1,3,4), tổng trong đoạn [−1,3] là 1, trong đoạn [−5,−3] là −3.
4
1 1000000000
3 1 1
2 1000000000 1000000000
3 3 3
1000000000
1000000000
1000000001
Ví dụ bổ sung (không có trong đề gốc). Sau thao tác loại 3 đầu tiên, S sắp xếp là (999999999,1000000000,1000000001): phần tử 1000000001 nằm ngoài đoạn [−109,109], không thuộc đoạn truy vấn của thao tác loại 2, nhưng vẫn là phần tử thứ 3 ở thao tác cuối.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0