Đ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ễ

Sắp xếp số trong xâu

100 điểm 33% AC 1 đã giải

staffagent

Cho một xâu \(S\) gồm chữ cái và chữ số. Mỗi dãy chữ số liên tiếp tối đa trong \(S\) tạo thành một số (số có thể có nhiều chữ số). Hãy sắp xếp các số đó theo thứ tự tăng dần theo giá trị, sau đó đặt lại chúng vào đúng những vị trí mà các số cũ chiếm (số nhỏ nhất vào vị trí số đầu tiên, ...), còn các chữ cái giữ nguyên vị trí.

Input

  • Một dòng chứa xâu \(S\). Xâu không chứa chữ số \(0\) và bắt đầu bằng chữ cái.

Output

  • In ra xâu sau khi sắp xếp.

Constraints

  • \(1 \le |S| \le 10^5\).
  • Các số có thể rất dài (tới hàng chục nghìn chữ số) nên hãy so sánh chúng cẩn thận.

Sample Input

Xy91ab5kk37z2

Sample Output

Xy2ab5kk37z91

Explanation

Các số theo thứ tự xuất hiện là \(91, 5, 37, 2\); sau khi sắp tăng dần là \(2, 5, 37, 91\) và được đặt lần lượt vào các vị trí đó.

Dễ

Nén và giải nén xâu

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

staffagent

Một phần mềm lưu trữ dùng phương pháp mã hoá độ dài chạy để rút gọn văn bản: mỗi đoạn gồm các ký tự giống hệt nhau đứng liền kề được thay bằng số lần lặp viết liền trước ký tự đó. Số lần lặp luôn được viết ra, kể cả khi bằng \(1\). Ví dụ aaabbbbc được nén thành 3a4b1c.

Bạn cần cài đặt cả hai chiều: nén một xâu và giải nén một xâu đã nén.

Input

  • Dòng 1: xâu \(S\) cần nén, chỉ gồm các chữ cái Latinh (hoa và thường phân biệt nhau).
  • Dòng 2: xâu \(T\) đã ở dạng nén, gồm các cặp (số nguyên dương, chữ cái) viết liền nhau như trên.

Output

  • Dòng 1: dạng nén của \(S\) (mỗi đoạn ký tự giống nhau tối đa liên tiếp được thay bằng số lần + ký tự).
  • Dòng 2: xâu thu được sau khi giải nén \(T\).

Constraints

  • \(1 \le |S|, |T| \le 10^6\).
  • Xâu sau khi giải nén \(T\) có độ dài không quá \(10^6\).

Sample Input

wwwwkkkTT
3k1Z2m

Sample Output

4w3k2T
kkkZmm

Explanation

wwww kkk TT lần lượt thành 4w, 3k, 2T. Ở chiều ngược lại 3k là kkk, 1Z là Z, 2m là mm.

Dễ

Cảm tình

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

root

Tại một buổi tiệc kết bạn, có \(N\) người tham gia. Mỗi người đều bí mật gửi một tờ giấy ghi tên người mà mình có cảm tình và muốn được làm quen. Nếu một người không có ai đặc biệt trong lòng, họ sẽ ghi tên chính mình.

Mỗi người tham gia cũng cam kết rằng nếu được ghép đôi với bất kỳ ai (không cần đúng người mình thích), họ sẽ trả một khoản phí nhất định cho ban tổ chức để hỗ trợ kinh phí tổ chức các buổi tiệc tiếp theo.

Ban tổ chức sẽ thực hiện việc ghép cặp, mỗi cặp gồm hai người \((u, v)\) sao cho ít nhất một trong hai người có cảm tình với người kia, tức là \(a_u = v\) hoặc \(a_v = u\). Một người chỉ được tham gia vào nhiều nhất một cặp.

Hãy giúp ban tổ chức tìm cách ghép các cặp sao cho tổng số tiền thu được là lớn nhất có thể.

Input

Dòng đầu tiên chứa số nguyên dương \(N\) \((1 \le N \le 10^5)\) --- số người tham gia buổi tiệc.

Dòng thứ hai chứa \(N\) số nguyên \(a_1, a_2, \ldots, a_N\) \((1 \le a_i \le N)\) --- với \(a_i\) là người mà người thứ \(i\) có cảm tình. Nếu \(a_i = i\) thì người thứ \(i\) không có cảm tình với ai cả.

Dòng thứ ba chứa \(N\) số nguyên \(b_1, b_2, \ldots, b_N\) \((0 \le b_i \le 10^9)\) --- với \(b_i\) là số tiền người thứ \(i\) sẽ trả nếu được ghép vào một cặp bất kỳ.

Output

In ra một số nguyên duy nhất --- tổng số tiền lớn nhất mà ban tổ chức có thể nhận được nếu ghép các cặp theo đúng quy tắc.

Example

Test 1

Input
5
2 3 1 1 1
1 2 3 4 5
Output
11
Note
  • **Subtask 1 (20 điểm): ** \(N \le 20\)
  • **Subtask 2 (80 điểm): ** Không có ràng buộc thêm.
Dễ

Đếm đoạn chia hết

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

staffagent

Bạn An có một hàng gồm \(N\) chiếc hộp, mỗi hộp chứa một số viên kẹo. Số viên kẹo trong hộp thứ \(i\) là \(a_i\).

An muốn chọn ra một đoạn liên tiếp các hộp sao cho tổng số kẹo trong đoạn đó chia hết cho \(K\).

Hãy giúp An đếm xem có bao nhiêu đoạn như vậy.

Input

  • Dòng đầu chứa hai số nguyên \(N\) và \(K\) (\(1 \le N \le 10^5\), \(1 \le K \le 10^9\)).
  • Dòng thứ hai chứa \(N\) số nguyên \(a_1, a_2, \dots, a_N\) (\(0 \le a_i \le 10^9\)).

Output

  • In ra một số nguyên — số lượng đoạn con (liên tiếp) có tổng chia hết cho \(K\).

Scoring

  • Có \(50\%\) số điểm ứng với \(N \le 1000\).

Sample Input 1

5 3
1 2 3 2 2

Sample Output 1

4
Xem thêm