Hân thích học những thuật toán đỉnh cao và mã hóa là một thuật toán như vậy. Ngày nọ, Hân nghĩ ra thuật toán mã hóa của riêng mình: Mỗi chuỗi sẽ quy về số kí tự có trong chuỗi đó. Cho một dãy gồm các chuỗi kí tự và cách nhau bởi dấu cách. Hãy áp dụng thuật toán của Hân để mã hóa dãy kí tự đã cho.
Test 1
Happy New Year 2021
5 3 4 4
Test 1
Le Cong Quoc Han
2 4 4 3
Quý rất thích làm toán, nên đã thách đố bạn bài sau: Cho số tự nhiên \(n\), hãy tính tổng \(1-2+3-4+\dots n\).
Test 1
4
-2
\(1-2+3-4=-2\)
Test 2
5
3
\(1-2+3-4+5=3\)
Bảo Anh là em họ của Anh Kha, và cậu rất thích những điều siêu to khổng lồ. Sau khi đạt được một số điểm siêu to khổng lồ trong kì thi chọn Học Sinh Giỏi của hành tinh Trái Nước, Bảo Anh được đại ca ami tặng một dãy số siêu to khổng lồ.
Dãy số được cho gồm \(N\) phần tử \(a_1, a_2, \dots, a_n\). Cảm thấy vẫn chưa xứng đáng với thành tích của mình, Bảo Anh muốn ami tặng thêm một số \(X\) siêu to nữa.
Vẫn chưa cảm thấy đủ, Bảo Anh quyết định tìm một số \(Y \geq X\) nhỏ nhất mà \(Y\) chia hết cho một số bất kì trong dãy \(a\) vì cậu nghĩ số này là một số siêu to khổng lồ.
Test 1
3 5
2 3 4
6
Só \(6\) chia hết cho \(2\) và \(3\) trong dãy \(a\).
Đức rất thích cống. Nhận thấy sở thích này rất bất thường và không sạch sẽ, ami quyết định bày Đức một trò chơi liên quan đến số học.
ami cho Đức 4 số \(c,u,o,m\). Đức có thể chọn một trong 3 số \(u, o, m\) và chia \(c\) cho số được chọn. Đức có thể lặp lại thao tác trên với số lần vô hạn nếu cậu thích, mục tiêu là làm cho số \(c\) trở thành \(1\). Tuy không thích số học, nhưng lại không dám làm trái lời ami, Đức muốn nhờ các bạn tìm ra số thao tác ít nhất để biến \(c\) thành \(1\), hoặc báo cho Đức là không thể, để Đức còn có thời gian đi chơi với cống.
Trong tất cả các test, \(1 \leq c,u,o,m \leq 10^{18}\)
Test 1
3
6
1 2 3
7
1 2 7
8
4 4 4
2
1
-1
Với \(c=6,u=1,o=2,m=3\), ta có thể lấy \(6/3/2=1\) hoặc \(6/2/3=1\). Tổng cộng cần ít nhất 2 thao tác.
Với \(c=7,u=1,o=2,m=7\), ta có thể lấy \(7/7=1\). Tổng cộng cần ít nhất 1 thao tác.
Anh Kha và
là một cặp huynh đệ đồng môn dưới sự chỉ dạy của sư phự ở bộ môn Liên Minh of Legend. Anh Kha đã lĩnh hội thành công phương thức gánh team bằng giao thức Apeliot. rất ghen tị. Sau một trận đấu có KDA 1/9/2, quyết định nhờ Anh Kha chỉ dạy bí thuật Apeliot cho mình.Anh Kha là một thiếu niên nghiêm túc và đầy lòng trắc ẩn. Cậu nhận thấy rằng nếu chỉ đơn giản đưa bí kíp cho \(S\) chỉ chứa các kí tự trong tập {c , u , o , m , g , a , v , l}, sẽ thêm một kí tự cũng thuộc tập trên vào một vị trí bất kì trong xâu \(S\) sao cho số lượng xâu kí tự \(cu\) xuất hiện trong xâu \(S\) sau khi thêm là nhiều nhất. Số lượng kí tự \(cu\) này chính là khẩu quyết mà Anh Kha muốn truyền đạt.
, sẽ không thể nhớ được. Vì vậy, mỗi lần truyền thụ một bí kíp, Anh Kha sẽ đưa cho một xâu kí tựXâu \(cu\) được gọi là xuất hiện trong xâu \(S\) nếu sau khi xoá đi một vài hoặc không kí tự trong xâu \(S\) và ghép các kí tự còn lại theo đúng thứ tự tương đối của nó, ta thu được xâu \(cu\).
Ví dụ, xâu \(cu\) xuất hiện trong xâu \(cạcu\) nhưng không xuất hiện trong xâu \(amivippro\)
Dòng đầu tiên chứa \(N\) là độ dài xâu \(S\).
Dòng thứ hai chứa \(N\) kí tự thuộc xâu \(S\).
Subtask \(1\) (\(30\%\) số điểm): \(n \leq 1000\).
Subtask \(2\) (\(30\%\) số điểm): \(n \leq 5000\)
Subtask \(3\) (\(40\%\) số điểm): \(n \leq 10^6\)
Test 1
8
cuomgavl
2
Ở test ví dụ 1, có thể thêm kí tự u vào sau chữ \(m\) để thu được xâu \(cuomugavl\). Xâu \(cu\) xuất hiện 2 lần.
Test 2
6
cumcal
3
Ở test ví dụ 2, có thể thêm kí tự u vào sau chữ \(a\) để thu được xâu \(cucaul\). Xâu \(cu\) xuất hiện 3 lần.
Sau khi truyền thụ bí thuật cho huynh đệ cuom1999, Anh Kha kết thúc kì nghỉ Tết và trở lại công việc của mình là BoiToanDao. Thầy bói Anh Kha nổi tiếng trong cộng đồng chuyên Tin với công thức tính chỉ số tình bạn đặc biệt. Một ngày nọ, Bảo Anh tìm tới tận nhà Anh Kha để xin một quẻ về tình bạn của mình với bạn nữ cùng tên. Không may cho Bảo Anh là Anh Kha lại vắng nhà, nhưng lại may cho cậu là cậu đã tìm được công thức trứ danh. Để tính chỉ số tình bạn giữa 2 bạn khác giới, Anh Kha làm như sau:
Doan Nguyen Thanh Luong
, bạn nữ là Huynh Phan Nhat Vy
thì Anh Kha sẽ ghép lại tạo thành chuỗi Doan Nguyen Thanh Luong Huynh Phan Nhat Vy
Ví dụ: \([4,6,5,5,5,4,4,2] \rightarrow [0,1,0,0,9,8,6] \rightarrow [1,1,0,9,7,4] \rightarrow [2,1,9,6,1] \rightarrow [3,0,5,7] \rightarrow [3,5,2] \rightarrow [8,7]\)
Vì lo sợ mình và bạn nữ cùng tên đang trong mối quan hệ trên tình bạn, dưới tình iu nên Bảo Anh không tài nào tập trung tính toán được. Bạn hãy giúp Bảo Anh tính ra chỉ số tình bạn của cậu ấy nhé.
Test 1
4 4
Doan Nguyen Thanh Luong
Huynh Phan Nhat Vy
87
Test 2
1 3
anhkha2003
Nguyen Ngoc Anh
67
Hiếu rất thích làm bài trên Codeforces. Một lần, trong contest Hiếu gặp bài toán như sau: "Cho một dãy số có \(n\) \((n \leq 1000)\) số \(a_1,a_2,\dots,a_n\). Tìm hai chỉ số \(i<j\) sao cho \(a_i+a_j\) lớn nhất. Bạn phải giải bài toán cho \(t\) \((t\leq 10^3)\) trường hợp khác nhau. Biết rằng tổng các số n trong một input không vượt quá \(1000\)". "Quá đơn giản", Hiếu thốt lên và bắt tay ngay vào code thuật toán \(O(n^2)\) đỉnh cao mà anh chỉ tốn \(1000ms\) để nghĩ ra. Ơ mà khoan, mỗi trường hợp là \(n^2\), có \(t\) test, vậy tổng cộng là \(n^2∗t=10^9\) phép tính cơ mà. "TLE mất rồi", Hiếu suy sụp. Hiếu sau đó nghĩ ra được thuật \(O(n)\) và AC dễ dàng. Tuy nhiên, sau khi thử submit lại code \(O(n^2)\), anh lại nhận được dòng chữ AC trong sự ngỡ ngàng. Vì sao vậy? Để đơn giản bài toán, Hiếu đã viết lại đề như sau (các bạn không cần đọc phía trên đâu :)):
Cho hai số nguyên \(n, s\) và dãy số nguyên gồm \(n\) số \(a_1, a_2, \dots , a_n\). Hãy tìm dãy số nguyên \(x_1, x_2, \dots , x_n\) thỏa mãn:
Bạn cần phải tìm giá trị lớn nhất của \(A\). Ngoài ra, bạn phải xử lý \(q\) truy vấn, mỗi truy vấn gồm hai số \(i,x\) và bạn cần update \(a_i=x\). Hãy in ra giá trị lớn nhất của \(A\) sau mỗi lần truy vấn.
Test 1
3 4
1 1 1
0
6
Chúng ta cần tìm 3 số \(x_1,x_2,x_3\) có tổng bằng 4 và \(x_i \geq 1\). Giá trị lớn nhất bằng \(1^2 + 2^2 + 1^2=6\)
Test 2
3 5
1 1 1
3
1 2
2 2
1 1
11
11
9
11