Điều hướng chính

Nhắn tin NQ Coding

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.

Dễ

Phát kẹo

100 điểm 0% AC 0 đã giải

root

Trong một trò chơi của chương trình ngoại khóa có \(n\) bạn nhỏ tham gia, các bạn xếp thành một hàng ngang và được đánh số từ \(1\) đến \(n\) theo chiều từ trái sang phải để nhận kẹo. Bạn thứ \(i\) \((1 \leq i \leq n)\) dự định sẽ được nhận \(a_{i}\) cái kẹo. Alice được mời lên phát kẹo cho các bạn đứng từ vị trí \(L\) đến vị trí \(R\) \((1 \leq L \leq R \leq n)\). Là một người yêu trẻ nhỏ và cũng say mê toán học, trước khi lên phát kẹo Alice đã chọn một chữ số \(k\) và chuẩn bị thêm một số kẹo để phát theo cách : Bạn có chỉ số \(i\) \((L \leq i \leq R)\) sẽ được nhận \(2\times a_{i}\) cái kẹo nếu \(i\) chi hết cho \(k\) hoặc trong số \(i\) có chứa chữ số \(k\), ngược lại bạn \(i\) sẽ nhận \(a_{i}\) cái kẹo.

Theo ý tưởng trên, Alice đã đề xuất một bài toán thú vị dưới đây:

Cho dãy số nguyên không âm \(a_{1}, a_{2}, ..., a_{n}\) và \(q\) thao tác, mỗi thao tác thuộc một trong hai loại sau:

  • Thao tác loại \(1\) được mô tả bằng ba số có dạng: \(1\) \(i\) \(c\), có nghĩa là thay đổi giá trị phần tử \(i\) bằng \(c\);
  • Thao tác loại \(2\) được mô tả bằng bốn số có dạng: \(2\) \(L\) \(R\) \(k\), có nghĩa là cần tính \(\sum_{i = L}^{R} b_{i}\), trong đó \(b_{i} = 2a_{i}\) nếu i chia hết cho \(k\) hoặc chứa chữ số \(k\), ngược lại \(b_{i} = a_{i}\).

Yêu cầu: Cho dãy \(a_{1}, a_{2}, ..., a_{n}\) và \(q\) thao tác, hãy thực hiện lần lượt từng thao tác, với mỗi thao tác loại \(2\) đưa ra giá trị cần tính.

Input

Vào từ thiết bị vào chuẩn có khuôn dạng:

  • Dòng đầu chứa hai số nguyên \(n\), \(q\) \((n, q \leq 2 \times 10^5)\)

  • Dòng thứ hai chứa \(n\) số nguyên không âm \(a_{1}, a_{2}, ..., a_{n}\).

  • Tiếp theo là \(q\) dòng, mỗi dòng mô tả một thao tác. Cụ thể nếu là thao tác loại \(1\) thì dòng gồm ba số nguyên \(1\) \(i\) \(c\) \((1 \leq i \leq n; 0 \leq c \leq 10^9)\),còn nếu là thao tác loại \(2\) thì dòng gồm bốn số nguyên \(2, L, R, k\) \((1 \leq L \leq R \leq n; 1 \leq k \leq 9)\)

Output

Ghi ra thiết bị chuẩn \(q\) dòng, mỗi dòng tương ứng với cấu trả lời cho thao tác loại \(2\) trong dữ liệu vào.

Example

Test 1

Input
16 4
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
2 1 5 2
2 14 16 4
1 14 24
2 14 16 4
Output
21
75
95

Scoring

Subtask \(1\) (\(40\%\) số điểm) : \(n, q \leq 200\).

Subtask \(2\) (\(20\%\) số điểm): Không có thao tác loại \(1\);

Subtask \(3\) (\(20\%\) số điểm): Tất cả các thao tác loại \(2\) có \(k = 1\);

Subtask \(4\) (\(20\%\) số điểm): không có ràng buộc gì thêm.

Dễ

Món quà

100 điểm 0% AC 0 đã giải

root

Sắp tới trung thu, quầy bán bánh trung thu Kinh Đô (đang bán ở nhà hát thành phố Đông Hà) dự định bán \(1\) tỷ hộp bánh. Tuy nhiên trong quá trình di chuyển, một số hộp bánh đã bị thủng nên bánh đã rơi giữa đường, nhưng hộp thì vẫn còn nên quầy bán vẫn xếp \(1\) tỷ hộp này thành một hàng, sau đó bán. Các hộp bánh chưa bị thủng được được đánh số từ \(1\) tới \(n\) theo thứ tự từ trái sang phải, và mỗi hộp bánh trung thu này đều có giá trị vui vẻ là \(k\). Hộp bánh thứ \(i\) nằm ở vị trí \(x_{i}\) trong \(1\) tỷ hộp bánh và Quân phải trả cho người bán quà \(c_{i}\) đồng để mua.

Quân dự định sẽ mua một đoạn con liên tiếp các hộp bánh chưa thủng, sau đó tặng cho bạn gái của Quân. Gọi vẻ đẹp của dãy hộp là tổng giá trị vui vẻ, trừ đi chi phí, sau đó lại trừ đi bình phương của chêch lệch lớn nhất giữa vị trí của hai món quà liên tiếp trong dãy được chọn (nếu chỉ chọn \(1\) món thì là \(0\)). Quân nhờ các bạn tính vẻ đẹp lớn nhất Quân có thể đạt được nhé !

Input

Dòng đầu tiên chứa hai số nguyên dương \(n\) và \(k\). \((1 \leq n \leq 3 \times 10^5, 1 \leq k \leq 10^9)\).

\(n\) dòng tiếp theo, dòng thứ \(i\) chứa hai số nguyên dương \(x_{i}\) và \(c_{i}\) (dữ liệu đảm bảo dãy \(x\) là một dãy sắp xếp không giảm, và \(1 \leq x_{i}, c_{i} \leq 10^9\))

Output

Dòng duy nhất là vẻ đẹp lớn nhất có thể.

Example

Test 1

Input
4 10
2 1
3 2
6 3
8 3
Output
22

Test 2

Input
6 4
4 4
7 6
9 5
10 3
11 3
12 4
Output
1

Test 3

Input
7 6
5 3
7 6
8 4
9 6
10 1
13 1
14 6
Output
6

Scoring

\(30\%\) số test tương ứng với \(25\%\) số điểm có \(n \leq 500\).

\(30\%\) số test tương ứng với \(25\%\) số điểm có \(n \leq 3000\).

\(40\%\) số test còn lại không có ràng buộc gì thêm.

Dễ

Subset

100 điểm 0% AC 0 đã giải

root

Bạn được cho một dãy số nguyên, ban đầu dãy này rỗng. Lần lượt thực hiện \(Q\) truy vấn thuộc một trong ba dạng:

  • add \(x\): Thêm một phần tử với giá trị \(x\) vào dãy (Có thể tồn tại nhiều phần tử cùng giá trị

  • del \(x\): Xóa bỏ khỏi dãy một phần tử với giá trị \(x\)

  • cnt \(x\): Đếm xem trong dãy tồn tại bao nhiêu số \(y\) mà \(x\) & \(y\) = \(y\), trong đó & là phép AND bit

Yêu cầu: Với mỗi truy vấn loại cnt, bạn hãy in ra kết quả tương ứng

Input

Dòng đầu tiên chứa số nguyên dương \(Q\) \((Q \leq 2 \times 10^5)\) là số truy vấn.

\(Q\)dòng tiếp, mỗi dòng mô tả một truy vấn, \(x \leq 2^{16}\) trong mọi truy vấn.

Output

In ra nhiều dòng, mỗi dòng là kết quả cho truy vấn loại cnt tương ứng trong bộ dữ liệu

Example

Test 1

Input
7
add 11
cnt 15
add 4
add 0
cnt 6
del 4
cnt 15
Output
1
2
2

Scoring

Đảm bảo với mọi test, khi thực hiện thao tác del \(x\), \(x\) đã xuất hiện trong dãy.

\(30\%\) số test có \(Q \leq 1000\).

\(30\%\) số test có \(x \leq 2^8\).

\(40\%\) số test còn lại không có ràng buộc gì thêm.

Dễ

Bạn bè

100 điểm 0% AC 0 đã giải

root

Quân vừa tham gia ICPC WF cùng \(n\) người bạn được đánh số từ \(1\) đến \(n\). Tại đây đã có \(m\) tình bạn nảy nở, tình bạn thứ \(i\) là giữa \(u_{i}\) và \(v_{i}\), các tình bạn được đánh số theo thứ tự thời gian. Hiện tại Quân chưa kết bạn với ai và anh muốn kết bạn theo cách sau:

Bước \(1\) : Nếu đã kết bạn với tất cả thì dừng.

Bước \(2\): Chọn \(x\) nhỏ nhất mà chưa kết bạn. Mở rộng quan hệ với \(x\) theo cách sau:

  • Kết bạn với \(x\).

  • \(x\) sẽ giới thiệu cho Quân các bạn bè của \(x\) theo thứ tự thời gian;

  • Quân sẽ mở rộng quan hệ với từng người một vừa được \(x\) giới thiệu, theo thứ tự. Nói cách khác, quá trình mở rộng quan hệ là một quá trình đệ quy (tìm kiếm theo chiều sâu).

Bước \(3\) : Quay lại bước \(1\).

Kết thúc quá trình, Quân đã kết bạn với tất cả mọi người. Quân sẽ tổ chức \(Q\) trò chơi, mỗi trò chơi sẽ mời những người từ \(l\) tới \(r\) tham gia. Khi \(x\) tham gia trò chơi, anh ta sẽ để ý các bạn bè của mình trong trò chơi. Nếu \(y\) là bạn của \(x\) và có tham gia trò chơi, \(x\) nghĩ rằng Quân thiên vị nếu \(y\) trở thành bạn của Đắc trước \(x\) . Nếu không có \(y\) nào như vậy, \(x\) sẽ nghĩ trò chơi này công bằng. Mức độ công bằng của trò chơi là số người nghĩ trò chơi này công bằng. Hãy giúp Quân tính toán mức độ công bằng của từng trò chơi.

 -

Input

Dòng đầu chứa \(n\) \(m\) \(Q\) \(s\) (trong đó \(s\) dùng để xử lí dữ liệu online).

\(m\) dòng tiếp theo, dòng thứ \(i\) chứa \(u_{i}\) và \(v_{i}\).

\(Q\) dòng tiếp theo, mỗi dòng chứa hai số \(x\) \(y\), khi đó \(l\) và \(r\) được tính như sau:

  • Gọi \(last\) là kết quả cho truy vấn ngay trước truy vấn này, hoặc \(last = 0\) nếu đây là truy vấn đầu tiên

  • \(l = (x + s \cdot last - 1) \% n + 1\).

  • \(r = (x + s \cdot last - 1) \% n + 1\).

  • Nếu \(l > r\) thì đổi giá trị \(l\) và \(r\).

Output

Ghi \(Q\) dòng là kết quả cho \(Q\) trò chơi.

Example

Test 1

Input
4 3 5 0
1 2
1 3
2 4
3 4
1 3
1 4
3 2
3 2
Output
2
1
1
2
2

Scoring

Trong tất cả các test: \(1 \leq n, m, Q, x, y \leq 10^5; 0 \leq s \leq 1\)

Có \(20\%\) số test có \(s = 0\) và mỗi người chỉ có nhiều nhất một người bạn (ngoài Quân).

Có \(20\%\) số test với mỗi người chỉ có nhiều nhất một bạn bè.

Có \(20\%\) số test với \(s = 0\).

Có \(40\%\) số test với ràng buộc gốc.

Xem thêm