Điều hướng chính

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Bài tập

Bài được chọn theo nhịp luyện tập của bạn, cùng mọi bài mới vừa lên.

root

Tổng bình phương

100 điểm

Cho dãy số nguyên \(a\) gồm \(N\) phần tử. Nhiệm vụ của bạn là xử lý \(Q\) truy vấn trên dãy, mỗi truy vấn thuộc một trong ba loại sau:

  • 2 u v --- In ra tổng các bình phương phần tử trong đoạn \([u, v]\).
  • 1 u v x --- Cộng thêm \(x\) vào tất cả các phần tử trong đoạn \([u, v]\).
  • 0 u v x --- Gán tất cả các phần tử trong đoạn \([u, v]\) bằng \(x\).

Input

  • Dòng đầu chứa hai số nguyên \(N\) và \(Q\) \((1 \leq N, Q \leq 10^5)\) --- số phần tử của dãy và số lượng truy vấn.
  • Dòng thứ hai chứa \(N\) số nguyên \(a_1, a_2, \ldots, a_N\) với \(|a_i| \leq 1000\).
  • \(Q\) dòng tiếp theo, mỗi dòng chứa một truy vấn theo một trong ba định dạng sau:

  • 2 u v \((1 \leq u \leq v \leq N)\).

  • 1 u v x \((1 \leq u \leq v \leq N, -1000 \leq x \leq 1000)\).
  • 0 u v x \((1 \leq u \leq v \leq N, -1000 \leq x \leq 1000)\).

Output

Với mỗi truy vấn loại 2, in ra một dòng chứa tổng các bình phương phần tử trong đoạn \([u, v]\) tại thời điểm đó.

Example

Test 1

Input
5 5
2 3 1 5 4
2 3 5
1 1 5 -2
2 1 4
0 2 4 3
2 1 5
Output
42
11
31
Note

Sau mỗi truy vấn, mảng \(a\) thay đổi như sau:

  • Ban đầu: \(a = [2, 3, 1, 5, 4]\)
  • Sau truy vấn 1: in ra \(1^2 + 5^2 + 4^2 = 1 + 25 + 16 = 42\)
  • Sau truy vấn 2: cộng \(-2\) cho toàn mảng \(\Rightarrow a = [0, 1, -1, 3, 2]\)
  • Sau truy vấn 3: in ra \(0^2 + 1^2 + (-1)^2 + 3^2 = 0 + 1 + 1 + 9 = 11\)
  • Sau truy vấn 4: gán phần tử \(2\) đến \(4\) bằng \(3\) \(\Rightarrow a = [0, 3, 3, 3, 2]\)
  • Sau truy vấn 5: in ra \(0^2 + 3^2 + 3^2 + 3^2 + 2^2 = 0 + 9 + 9 + 9 + 4 = 31\)

Scoring

  • Subtask \(1\) (25% số điểm) : \(N, Q \leq 1000\).
  • Subtask \(2\) (25% số điểm) : Không có thao tác loại \(1\).
  • Subtask \(3\) (25% số điểm) : Không có thao tác loại \(0\).
  • Subtask \(4\) (25% số điểm) : Không có ràng buộc gì thêm.

root

Mảng 2

100 điểm

Khai báo một mảng một chiều có \(10\) phần tử có kiểu số nguyên.
Gán giá trị cho các phần tử như sau:

  • Các phần tử có chỉ số từ \(0\) đến \(5\) (bao gồm cả \(0\) và \(5\)) có giá trị $ = 6$.
  • Các phần tử có chỉ số từ \(6\) đến \(9\) (bao gồm cả \(6\) và \(9\)) có giá trị $ = 20$.

(Lưu ý: Với mảng \(10\) phần tử, các chỉ số hợp lệ là từ \(0\) đến \(9\)).

Dòng đầu tiên, in ra phần tử thứ \(6\) của mảng.
Dòng thứ hai, in ra tất cả các phần tử của mảng, theo thứ tự từ phần tử \(0\), phần tử \(1\), phần tử \(2\), ..., đến phần tử \(9\). Mỗi số cách nhau một dấu cách.

Input

Không có dữ liệu đầu vào.

Output

Dòng đầu tiên chứa một số nguyên là giá trị của phần tử thứ \(6\).
Dòng thứ hai chứa \(10\) số nguyên, là các phần tử của mảng từ chỉ số \(0\) đến \(9\), cách nhau bởi một dấu cách.

Example

Test 1

Input
Nothing
Output
20
6 6 6 6 6 6 20 20 20 20

root

Trò chơi

100 điểm

Bạn có một nhân vật cần được tăng chỉ số sức mạnh.

Nhân vật có \(N\) kỹ năng, được đánh số từ \(1\) đến \(N\).
Kỹ năng thứ \(i\) có hai chỉ số tăng tiến là \(s_i\) và \(e_i\).

  • Lần đầu tiên tăng cấp kỹ năng \(i\), nhân vật nhận được \((s_i + e_i)\) điểm sức mạnh.
  • Từ lần tăng cấp thứ hai trở đi của kỹ năng \(i\), mỗi lần chỉ nhận thêm \(e_i\) điểm sức mạnh.

Bạn có thể tăng cấp một kỹ năng bất kỳ, không giới hạn số lần.

Trò chơi diễn ra trong \(M\) phút. Mỗi phút, nhân vật được thực hiện đúng một lần tăng cấp.

Yêu cầu:
Hãy tính chỉ số sức mạnh lớn nhất mà nhân vật có thể đạt được sau \(M\) phút.

\InputFile
\begin itemize

  • Dòng đầu chứa hai số nguyên dương \(N\) và \(M\) \((1 \le N \le 10^5,\ 1 \le M \le 10^9)\).

  • \(N\) dòng tiếp theo, dòng thứ \(i\) chứa hai số nguyên dương \(s_i\) và \(e_i\) \((1 \le s_i, e_i \le 10^9)\).

\OutputFile
In ra một số nguyên duy nhất là chỉ số sức mạnh lớn nhất có thể đạt được.

Subtasks

  • Subtask 1 (40 điểm): \(M = 2\).
  • Subtask 2 (40 điểm): \(M \le 100\).
  • Subtask 3 (20 điểm): Không có ràng buộc thêm.

Example

Test 1

Input
3 4
2 2
2 5
5 1
Output
23

root

Phân lô bán nền

100 điểm

Hệ thống mô phỏng của CLB CHTCoder cung cấp cho bạn một khu đất kích thước \(n \times m\).

Để đánh giá khả năng tư duy, thử thách đặt ra là:

Hãy xác định số cách chia khu đất thành các phần có diện tích bằng nhau
(các cách có diện tích trùng nhau được tính là một cách).

Input

Vào từ file PHANLO.INP:

  • Một dòng gồm hai số nguyên dương \(n, m\) (\(1 \le n, m \le 10^{14}\)).

Output

Ghi ra file PHANLO.OUT:

  • Một số nguyên --- số cách chia, modulo \(10^9 + 7\).

Example

Test 1

Input
4 8
Output
6

Scoring

  • Subtask 1 (30%): \(1 \le n, m \le 10^3\).
  • Subtask 2 (30%): \(1 \le n, m \le 10^7\).
  • Subtask 3 (40%): Không có ràng buộc thêm.
Xem thêm