TLEoj Contest #09 - Tính tổng

Lib

Cho N số nguyên không âm A[1], A[2],..., A[N]. Tính tổng A[1] + A[2] +\dots+ A[N].

Input, Output và Subtasks

Input

Gồm 1 dòng gồm N+1 số nguyên, có giá trị từ 0\rightarrow 10^7, bao gồm các số N, A[1], A[2],..., A[N].

Output

Gồm 1 dòng là kết quả cần tìm mod\ 2147483648.

Sample

Sample Input
3 41 60 29 
Sample output
130

Sample

Sample Input
5 35 80 45 66 68 
Sample output
294

Sample

Sample Input
7 38 43 44 65 49 3 77 
Sample output
319

TLEoj Contest #09 - PVBM

Lib

T là một người vô cùng thượng đẳng, hiện đang làm chủ 1 nhà hàng ở đâu đó. Hắn ta cứ hở ra là lại nói những thứ rất là súc vật và mang tính phân biệt đối xử khá cao - đến mức vài người coi hắn là truyền nhân tương lai của anh họa sĩ người Áo nào đó. Cay cú và nghĩ rằng mình bị kì thị do suốt ngày ăn nói lung tung, hắn muốn hợp lí hóa đống tư tưởng siêu cực đoan của mình bằng cách thống kê những hành động của các thực khách trong nhà hàng của mình.

Ở đất nước của hắn (dĩ nhiên là Byteland, Bitland là cho bọn khố rách áo ôm, đương nhiên rồi) có N thành phố, được đánh số từ 1 đến N. T quá racist nên không phục vụ cho bất kì thực khách nào không đến từ 1 trong N thành phố của đất nước Byteland cả. Với những khách hàng của mình, hắn chia nhà hàng của hắn thành 2 khu vực:

  • Khu vực phục vụ: Gồm N phòng ăn tập trung được đánh số từ 1...N. Phòng ăn thứ i chỉ dành cho những người đến từ thành phố i, và có sức chứa là C[i] khách. Khi 1 khách hàng từ thành phố i đến, nếu trong phòng ăn thứ i đang có ít hơn C[i] người, khách hàng này sẽ được đi thẳng vào phòng ăn
  • Khu vực chờ: Gồm N phòng chờ được đánh số từ 1...N. Phòng chờ thứ i chỉ dành cho những người đến từ thành phố i, và có sức chứa là D[i] khách. Nếu 1 khách hàng đến từ thành phố i đến và phòng ăn tập trung thứ i không còn chỗ, khách hàng đó sẽ vào phòng chờ thứ i. Nếu 1 vị khách đang ở trong phòng ăn thứ i bị đuổi ra, họ sẽ vào phòng chờ thứ i. Nếu 1 vị khách bị đuổi khỏi khu vực chờ, họ sẽ không quay trở lại.
  • Nếu 1 khách hàng từ thành phố i đến và cả phòng ăn thứ i lẫn phòng chờ thứ i đều không còn chỗ, họ sẽ đi về và không gây ảnh hưởng gì đến số liệu cả.

Trong 1 ngày sẽ có Q hành động, mỗi hành động được kí hiệu như sau:

  • 1 l r k: 1 nhóm các đại biểu đến nhà hàng. Với mỗi thành phố có số thứ tự i (l \le i \le r), lần lượt có k đại biểu đi đến nhà hàng.

  • 2 l r k: Với mỗi phòng có số thứ tự i (l \le i \le r), lần lượt đuổi k người đi. Nếu trong phòng ăn nào đó có ít hơn k người, đuổi tất cả mọi người đi.

  • 3 A k: Mời k vị khách vào khu vực chờ sớm nhất (tính đến thời điểm hiện tại) vào phòng ăn tương ứng. Nếu trong khu vực chờ có ít hơn k khách, cho tất cả vào. Nếu trong phòng ăn i không còn chỗ, khách hàng này sẽ tự bỏ về, rời khỏi khu vực chờ.

  • 3 B k: Đuổi k vị khách vào khu vực chờ sớm nhất (tính đến thời điểm hiện tại) khỏi nhà hàng.

  • 4 A: Tìm số vị khách lớn nhất đến từ cùng 1 thành phố đã đến nhà hàng.

  • 4 B: Tìm số vị khách lớn nhất đến từ cùng 1 thành phố đang trong khu vực phục vụ.
  • 4 C: Tìm số vị khách lớn nhất đến từ cùng 1 thành phố đang trong khu vực chờ.

  • 5 A: Tính tổng số người đang ở trong khu vực phục vụ ở thời điểm hiện tại

  • 5 B: Tính tổng số người đang ở trong khu vực chờ ở thời điểm hiện tại.

Dữ liệu đầu vào đảm bảo:

  • Số khách hàng từng vào nhà hàng không vượt quá 10^7
  • Số lần 1 vị khách vào khu vực phục vụ không vượt quá 10^7
  • Trong mọi truy vấn loại 1,2,3; k \le 10^9

Yêu cầu: Với mỗi truy vấn loại 4 hoặc loại 5, in ra thông tin mà truy vấn yêu cầu.

Input, Output và Scoring

Input (bàn phím)
  • Dòng đầu tiên gồm 2 số N, Q (1 \le N, Q \le 10^5) - Số thành phố trong đất nước Byteland, và số hành động trong ngày hôm đó.
  • Dòng thứ 2 gồm N số C[1], C[2],....., C[N] (1 \le C[i] \le 10^{18}) - sức chứa của phòng ăn thứ i
  • Dòng thứ 3 gồm N số D[1], D[2],....., D[N] (1 \le D[i] \le 10^{18}) - sức chứa của phòng chờ thứ i
  • Q dòng tiếp theo gồm các số miêu tả các truy vấn.
Output (màn hình)
  • Với mỗi truy vấn loại 4 hoặc $5, in ra dữ liệu được yêu cầu trên 1 dòng.
Subtasks
  • Subtask 1 (3% số điểm): Chỉ gồm các truy vấn loại 1 và 5; N,Q \le 1000; với mọi truy vấn loại 1: k=1; C[1] = C[2] = ... = C[N] = 10^{18}
  • Subtask 2 (8% số điểm): Chỉ gồm các truy vấn loại 1,4,5; N,Q \le 100000
  • Subtask 3 (27% số điểm): C[1] = C[2] = ... = C[N], D[1] = D[2] = ... = D[N]
  • Subtask 4 (29% số điểm): D[1] = D[2] = ... = D[N] = 10^{18}; l=1 và r=N với mọi truy vấn loại 1 và 2
  • Subtask 5 (33% số điểm): Không có điều kiện gì thêm

Sample

Input (bàn phím)
7 10
100 100 100 100 100 100 100
5 5 5 5 5 5 5
1 1 4 11
1 2 6 12
1 3 7 18
1 1 10 40
1 5 9 12
4 B
4 A
4 C
5 A
5 B
Output (màn hình)
82
82
0
510
0
Notes

Sau 5 truy vấn đầu tiên:

  • Số người đang ở trong các phòng ăn: 51 63 81 81 82 82 70$
  • Số người đang ở trong các phòng chờ: 0 0 0 0 0 0 0
  • Truy vấn loại 4B hỏi số người nhiều nhất đang ở trong cùng 1 phòng ăn. Kết quả là 82 - thuộc về phòng 5 hoặc 6.
  • Do chưa ai bị đuổi ra ngoài nên số người nhiều nhất đến từ cùng 1 thành phố mà đã đến nhà hàng cũng là 82 - thuộc về thành phố 5 hoặc 6.
  • Do chưa ai bị đuổi ra ngoài, số người nhiều nhất đến từ cùng 1 thành phố mà đã bị đuổi là 0 - cả 7 thành phố đều vậy.
  • Tổng số người đang ở trong khu vực phục vụ là 510
  • Không có ai ở trong khu vực chờ cả.

Sample 2

Input (bàn phím)
5 5
2 3 5 3 2
2 2 2 2 2
1 1 5 3
2 1 5 1
3 B 3
3 A 4
4 B
Output (màn hình)
3
Notes

Sau truy vấn đầu tiên:
Phòng ăn: 2 3 3 3 2
Phòng đợi: 1 0 0 0 1
Hàng đợi: 1 5

Sau truy vấn thứ 2:
Phòng ăn: 1 2 2 2 1
Phòng chờ: 2 1 1 1 2
Hàng đợi: 1 5 1 2 3 4 5

Sau truy vấn thứ 3:
Phòng ăn: 1 2 2 2 1
Phòng chờ: 0 1 1 1 1
Hàng đợi: 2 3 4 5

Sau truy vấn thứ 4:
Phòng ăn: 1 3 3 3 2
Phòng chờ: 0 0 0 0 0

TLEoj Contest #07 - Truy vấn hình vuông

Sunlight

Trên mặt phẳng tọa độ Oxy trống, bạn được cho q truy vấn, truy vấn thứ i yêu cầu bạn phủ một hình vuông có độ dài cạnh 1 lên mặt phẳng sao cho vị trí góc trái dưới của hình vuông nằm ở tọa độ (u, v) (và hiển nhiên góc phải trên của hình vuông nằm ở tọa độ (u + 1, v + 1)), đồng thời yêu cầu bạn tính tổng chu vi của phần được phủ bởi các hình vuông.

Input, Output và Subtasks

Input: (bàn phím)
  • Dòng đầu tiên gồm số nguyên dương q (q \le 10^5) - số truy vấn bạn cần thực hiện.
  • q dòng tiếp theo, mỗi dòng gồm hai số nguyên u_i, v_i (1 \le u_i, v_i \le 5000) mô tả các truy vấn cần thực hiện. Dữ liệu đầu vào đảm bảo (u_i, v_i) \neq (u_j, v_j) với mọi i \neq j.
Output: (màn hình)
  • Vỡi mỗi truy vấn, in ra tổng chu vi của phần được phủ bởi các hình vuông trên một dòng.
Subtasks
  • 30\% số điểm có q \le 200; x_i, y_i \le 50.
  • 30\% số điểm có q \le 5000; x_i, y_i \le 500.
  • 40\% số điểm còn lại không có giới hạn gì thêm.

Sample

Input (bàn phím)
4
1 1
2 2
2 1
3 1
Output (màn hình)
4
8
8
10
Notes
  • Sau truy vấn thứ nhất, chu vi của phần được phủ là 4.
  • Sau truy vấn thứ hai, chu vi của phần được phủ là 8.
  • Sau truy vấn thứ ba, chu vi của phần được phủ là 8.

TLEoj Contest #07 - Truy vấn LCP trên đoạn

huyhau6a2

Trong buổi học đầu tiên ở lớp, huyhau6a2 được cho một xâu s gồm n ký tự chỉ bao gồm các chữ cái tiếng anh viết thường. Cô đã dạy cho huyhau6a2 một số định nghĩa như sau:

  • Một xâu con của xâu s được tạo ra bằng cách bỏ bớt một số ký tự liên tiếp ở đầu và ở cuối của xâu s, với s[l\rightarrow r] là xâu con s_l s_{l+1}\dots s_r.
  • Gọi p_i là hậu tố bắt đầu từ vị trí i của xâu s, định nghĩa p_i=s[i\rightarrow n].
  • Gọi lcp(s_1,s_2,\dots,s_x) là giá trị k lớn nhất sao cho s_1[1\rightarrow k]=s_2[1\rightarrow k]=\dots=s_x[1\rightarrow k] và s_1,s_2,\dots,s_x là các xâu bất kỳ

Sau buổi học, cô giáo đã cho huyhau6a2 q truy vấn, mỗi truy vấn gồm 2 số l,r. Nhiệm vụ của huyhau6a2 là với mỗi truy vấn, hãy tính giá trị của lcp(p_l,p_{l+1},\dots,p_r).

huyhau6a2 đã giải xong rồi, và giờ đây chính là thử thách dành cho các bạn!

Input, Output và Subtasks

Input: (bàn phím)
  • Dòng đầu tiên gồm 2 số n,q (1\le n,q\le 2\times 10^5).
  • Dòng tiếp theo gồm một xâu s độ dài n.
  • Sau đó là q dòng, mỗi dòng gồm 2 số l,r (1\le l<r\le n).
Output: (màn hình)
  • Vỡi mỗi truy vấn, in ra giá trị của lcp(p_l,p_{l+1},\dots,p_r)
Subtasks
  • 30\% số điểm có n\le 100.
  • 30\% số điểm có n\le 2000.
  • 40\% số điểm còn lại không có giới hạn gì thêm.

Sample

Input (bàn phím)
4 3
abbb
1 2
2 3
2 4
Output (màn hình)
0
2
1

TLEoj Contest #07 - Thoát khỏi kim tự tháp

Noobcoder

Một trò chơi mới được khai trương tại khu vui chơi, nó có tên là: “Thoát khỏi kim tự tháp”.
Mặt trước của khu vực chơi có thể được miêu tả bằng một ma trận A có n hàng (các hàng được đánh số từ 1→n từ trên xuống dưới) và m cột (các cột được đánh số từ 1→m từ trái sang phải). Trong số các phòng có thể di chuyển qua lại, thời gian di chuyển có thể được xem là 1s. Bạn sẽ xuất phát ở tầng n, và cố gắng lên đến tầng cao nhất (trong số những tầng có thể lên) trong một khoảng thời gian không quá t giây. Nếu thành công sẽ có thưởng. Có 2 ràng buộc cho trò chơi này là:

  • Ràng buộc 1: Bạn bắt buộc phải xuất phát từ hai phòng ở tận cùng bên trái hoặc tận cùng bên phải (trong số những phòng có thể vào được) ở tầng n.
  • Ràng buộc 2: Bạn bắt buộc không được phép vào một phòng bất kì nếu hoặc nó không thể vào hoặc bạn đã vào phòng đó trước đó.
  • Ràng buộc 3: Nếu bạn ở tầng cao nhất và quyết định lên thêm thì đồng nghĩa rằng bạn chọn kết thúc trò chơi, và thời gian bạn lên sẽ không tính và trò chơi sẽ kết thúc.
Explanation
Mô tả Minh họa
Đây là một ví dụ cho kim tự tháp có thể được cho (các ô vàng là các phòng có thể đi qua, và các ô cam là các phòng không thể đi qua).
Đây là một trường hợp hợp lệ vì thỏa mãn cả 2 ràng buộc đưa ra.
Đây là một trường hợp không hợp lệ vì không thỏa mãn ràng buộc số 1 (không xuất phát tại hai phòng ở tận cùng bên trái hoặc tận cùng bên phải ở tầng n).
Đây là một trường hợp không hợp lệ cũng vì không thỏa mãn ràng buộc số 1 (không xuất phát tại tầng n).
Đây là một trường hợp không hợp lệ vì không thỏa mãn ràng buộc số 2 (đi qua một ô 2 lần).

Để cho trò chơi mang tính thử thách hơn thì ban tổ chức quyết định sẽ giao cho một người chơi bất kì một giá trị t bất kì, và họ sẽ sử dụng một phương pháp sinh số ngẫu nhiên nào đó. Tuy nhiên, họ muốn bất kì giá trị nào cho ra đều sẽ có một cách chơi giúp người chơi giành giải thưởng (không khiến trò chơi trở nên impossible), tuy nhiên vẫn đủ để thử thách người chơi (họ không thể tùy tiện di chuyển mà vẫn thắng). Vì vậy, họ cần tìm ra hai giá trị L và R (1≤L≤R) lần lượt là thời gian nhanh nhất và lâu nhất có thể để một người chơi hoàn thành trò chơi.
Họ quá bận trong việc điều hành các trò chơi khác trong khu vui chơi. Vì vậy, bạn hãy giúp họ tìm ra giá trị L và R thỏa mãn.

Input, Output và Subtask

Input
  • Dòng một gồm một giá trị q là số lượng testcase cần được xử lí (1 ≤ q ≤ 100);
    Mỗi bộ testcase có cấu trúc như sau:
  • Dòng hai gồm hai giá trị n, m là số hàng và số cột của ma trận A (1 ≤ n, m ≤ 10^4, 1 ≤ n \times m ≤ 10^6);
  • n dòng sau, mỗi dòng gồm hai số nguyên dương u_i, v_i (1 \le u_i \le v_i \le m + 1), với u_i là ô đầu tiên có thể đi qua được trên hàng thứ i, và v_i là ô đầu tiên sau u_i không thể đi qua được trên hàng thứ i. Nếu u_i = v_i nghĩa là hàng đó không có ô nào đi qua được.
  • *Ràng buộc: Các ô có thể đi qua tạo thành một kim tự tháp có độ cao h (1 ≤ h ≤ n). Hay nói cách khác, l_n \le l_{n - 1} \le l_{n - 2} \le ... \le l_1 \le r_1 \le r_2 \le ... \le r_n.
  • Hệ thống hóa lại ràng buộc số 1, ta có được 2 điểm xuất phát bắt buộc là hai ô có tọa độ (l_n, n) và (r_n - 1, n).
  • Dữ liệu đầu vào đảm bảo l_n < r_n.
Output
  • Với mỗi testcase, in ra độ dài đường đi nhanh nhất và lâu nhất tìm được.
Sample
Input
2

4 11
6 7
5 8
4 10
2 11

3 3
2 2
2 3
2 3
Output
8 16
2 2
Explanation

Giải thích test 1: Đường đi nhanh nhất và lâu nhất có thể được thực hiện như bên dưới.

Đường đi nhanh nhất (8) Đường đi lâu nhất (16)

TLEoj Contest #07 - Tổng tích lũy

KodomoTachi

Tachi có một bài toán nho nhỏ và cần bạn giúp đỡ.

Anh ta có số nguyên N, Q và mảng A = (A_1,..., A_N).

Tachi cần xử lí Q truy vấn, mỗi truy vấn trong đó thuộc một trong hai loại sau đây:

  • 1 x v: cập nhật A_x thành v.
  • 2 x: ta có B_i = \sum_{j = 1}^{i} A_j, C_i = \sum_{j = 1}^{i} B_j và D_i = \sum_{j = 1}^{i} C_j. In ra phần tử D_x chia dư cho 998244353.

Input, Output và Subtasks

Input: (bàn phím)
  • Dòng đầu tiên chứa 2 số nguyên N và Q (1 \le N, Q \le 2 x 10^5).
  • Dòng tiếp theo chứa N số nguyên: A_1, A_2,..., A_N (0 \le A_i \le 10^9).
  • Q dòng tiếp theo, chứa truy vấn cần xử lí, dịnh dạng của truy vấn được miêu tả như đề trên (1 \le x \le N, 0 \le v \le 10^9).
Output: (màn hình)
  • Khi gặp truy vấn loại 2 thì trả lời như đề đã đưa ra, khi trả lời thì xuống dòng.

Sample 1

Input (bàn phím)
3 3
1 2 3
2 3
1 2 0
2 3
Output (màn hình)
15
9
Notes
  • Ở truy vấn thứ nhất, A = (1, 2, 3), vì vậy B = (1, 3, 6), C = (1, 4, 10), và D = (1, 5, 15). Do đó D_3 = 15.
  • Ở truy vấn thứ 3, A = (1, 0, 3), vì vậy B = (1, 1, 4), C = (1, 2, 6), và D = (1, 3, 9). Do đó D_3 = 9.

Sample 1

Input (bàn phím)
2 1
998244353 998244353
2 1
Output (màn hình)
0

TLEoj Contest #08 - Tích chữ số nguyên tố

HoBaoPhuc2009

HoBaoPhuc2009 tạo một số s độ dài vô hạn bằng cách ghép các số nguyên tố có giá trị tăng dần lại với nhau, bắt đầu từ số 2. Các chữ số đầu của s bao gồm: 2357111317192329\dots.

Bạn được cho t testcase, mỗi testcase gồm một số k. Nhiệm vụ của bạn là tính tích k chữ số đầu tiên của s. Vì kết quả có thể rất lớn nên hãy xuất kết quả sau khi mod\ 10^9+7.

Input, Output và Subtasks

Input: (bàn phím)
  • Dòng đầu tiên gồm số nguyên dương t là số testcase (1\le t\le 10^5).
  • Sau đó là t dòng, mỗi dòng gồm một số nguyên dương k (1\le k\le 10^{18})
Output: (màn hình)
  • Vỡi mỗi truy vấn, in ra kết quả tìm được trên một dòng.
Subtasks
  • 30\% số điểm có k\le 10^6.
  • 70\% số điểm còn lại không có giới hạn gì thêm.

Sample

Input (bàn phím)
6
1
2
3
4
5
8
Output (màn hình)
2
6
30
210
210
630
Notes
  • Trong testcase thứ hai, kết quả là 2\times 3=6.
  • Trong testcase thứ ba, kết quả là 2\times 3\times 5=30.
  • Trong testcase thứ tư, kết quả là 2\times 3\times 5\times 7=210.
  • Trong testcase thứ năm, kết quả là 2\times 3\times 5\times 7\times 1=210.
  • Trong testcase thứ sáu, kết quả là 2\times 3\times 5\times 7\times 1\times 1\times 1\times 3=630.

TLEoj Contest #08 - Ước chung lũy thừa

i_loveMaiPhuong

Bạn được cho một dãy số a dương gồm n phần tử và một số nguyên dương p. Nhiệm vụ của bạn là kiểm tra xem có cặp chỉ số 1\le i<j\le n thỏa mãn gcd(p^{a_i}-1,p^{a_j}-1)=p^{gcd(a_i,a_j)}-1. Nếu có thì hãy xuất YES, ngược lại xuất NO.

Input, Output và Subtasks

Input: (bàn phím)
  • Dòng đầu tiên gồm 2 số nguyên dương n,p (1\le n\le 10^5,1\le p\le 10^{18}).
  • Dòng tiếp theo gồm n số nguyên dương a_1,a_2,\dots,a_n (1\le a_i\le 10^{18}).
Output: (màn hình)
  • Nếu có cặp số thỏa mãn thì hãy xuất YES, ngược lại xuất NO.

Sample

Input (bàn phím)
2 3
1 2
Output (màn hình)
YES
Notes
  • Cặp số (1,2) thỏa mãn vì gcd(3^1-1,3^2-1)=gcd(2,8)=2 và 3^{gcd(1,2)}-1=3-1=2

TLEoj Contest #08 - Số Sigma

i_love_moonlight

nah không có quote cho bài này đâu 🐧

Theo nguồn bệnh ung thư não lớn nhất thế giới, Sigma được hiểu là một người đàn ông sống cuộc sống dựa trên các quy tắc của riêng mình, phát triển vì đam mê của mình, không bị phân tâm bởi các quy tắc hoặc tiêu chuẩn xã hội. Cũng vì trend đấy, thầy của mondellbit009 là huyhau6a2 đã ra một bài rất khó hiểu, mà nếu hiểu thì cũng không biết làm 🐧, đó là:

Cho một dãy số gồm n phần tử, hãy cho biết có bao nhiều phần tử là sigma. Được biết số sigma là số chỉ có 2 ước là 1 và chính nó.

mondellbit009 đang rất mệt mỏi để làm bài đấy. Các bạn hãy giúp nhé :D

Input, Output và Subtask

Input
  • Dòng đầu tiên nhập n (1 \le n \le 10^6)
  • Dòng tiếp nhập mảng a gồm n phần tử (2 \le a_i \le 10^9)
Output

In ra đáp án cần tìm.

Subtask
  • 50\% số test có n \le 10 ^ 4 và a_i \le 10^6
  • 50\% số test còn lại không có điều kiện gì thêm

Example và Explain

Sample Input
5
4 3 9 7 10
Sample Output
2
Explain
  • Số 3 và 7 là số sigma.

TLEoj Contest #07 - Knapsack đơn giản

haiender288

Chắc hẳn các bạn đã biết về bài toán cái túi, hay knapsack. Bài toán này là một phiên bản khác của bài toán cái túi.

Có n món đồ, món đồ thứ i có cân nặng a_i. An chọn một số món đồ sao cho tổng cân nặng của chúng đúng bằng m và muốn biết rằng có bao nhiêu cách chọn đồ như vậy. Một món đồ có thể chọn 0 lần, 1 lần hoặc nhiều hơn 1 lần, hai cách chọn được gọi là khác nhau nếu có một món đồ chọn nhiều hoặc ít hơn cách chọn kia. Hãy giúp bạn An đếm nhé

Input, Output và Subtasks

Input: (standard input)
  • Dòng đầu gồm hai số nguyên dương n và m (1\leq n\leq 10).
  • Dòng tiếp theo gồm n số nguyên dương a_1,a_2,...,a_n (1\leq a_i\leq 20).
Output: (standard output)
  • In ra một số là số cách chọn mod 10^9+7.
Subtasks
  • Subtask 1 (40\%): m\leq 2000
  • Subtask 2 (20\%): n=2, m\leq 10^{18}
  • Subtask 3 (40\%): m\leq 10^{18}

Sample

Input (standard input)
3 4
1 2 3
Output (standard output)
4

TLEoj Contest #06 - ChepCodeThanhLegend

i_love_moonlight

ChepCodeThanhLegend: Rất đơn giản, chúng tôi chép code, và thành Legend (nhưng mà là Legend về số lượng acc bị banned)


ChepCodeThanhLegend là một team được lập bởi những người yêu chép code, cop sol,... Những thành viên của team là mondellbit009, flo và Noobcoder. Là những người bạn của nhau, nên hầu như contest nào bọn họ cũng chép code với nhau. Kể cả những cuộc thi chính thức như HSG, THT, vv.. thì cả team đều cop code nhau để đạt được giải cao. Khi tin cả team cop code ở những kì thi chính thức lọt vào tai huyhau6a2, một người thầy dạy tin vjp pro đứng top 1 server. huyhau6a2 rất tức giận, lập tức bay vào Đà Nẵng để ra bài siêu khó cho những thanh niên chép code làm, thầy ấy ra điều kiện là: Nếu làm được thì thầy cho 500k, còn không thì số acc rate cao trên trời ở TLEOJ sẽ paymau. Bài tập thầy đưa là:

Cho một mảng a có độ dài n. Bạn có thể cộng trừ 1 phần tử trong mảng a không quá m đơn vị. Hãy kiểm tra xem mảng đó sau thao tác cộng trừ có tổng bằng số k không?

Đây là một bài rate 3500, và chắc chắn không có trên mạng nên là khỏi cop :))). Bạn là một coder siêu cấp vjp pro nên hãy giúp cả team lấy 500k nhé ( chắc chắn team sẽ chia cho bạn mà :) )

Input, Output và Subtasks

Input

Dòng đầu tiên t (1 \le t \le 10^3) là số lượng testcase.

t dòng tiếp theo nhập theo format sau:

  • Dòng đầu tiên nhập n, m, k (1 \le n \le 100, 1 \le m \le 2 \times 10^6, 1 \le k \le 2 \times 10^6)
  • Dòng tiếp theo nhập mảng a có độ dài n (1 \le a_i \le 10^5)
Output

Gồm t dòng, nếu thỏa mãn điều kiện in YES ngược lại in NO.

Subtask
Bạn nghĩ có subtask không ?

Không :)))

Sample và Explain

Sample Input
3
4 2 4
1 1 1 3
6 5 10
9 3 2 1 9 4
5 6 7
1 2 1 1 1
Sample output
YES
NO
YES
Explain
  • Ở testcase thứ nhất, bạn chọn phần tử thứ 4 rồi trừ đi 2 thì tổng sẽ bằng 4, nên thỏa mản điều kiện.
  • Ở testcase thứ ba, bạn chọn phần tử nào bằng 1 rồi cộng 1 thì tổng sẽ bằng 7, nên thỏa mản điều kiện.

TLEoj Contest #06 - Bộ ba tổng

flo

Một bộ ba (i, j, k) được gọi là bộ ba thành tổng nếu nó thỏa mãn:

  • 1 \le i, j, k \le n.
  • i+j+k = m.

Cho hai số nguyên dương n, m, hãy in ra số lượng bộ ba (i, j, k) là bộ ba thành tổng.

Input, Output and Scoring

Input

  • Dòng đầu bao gồm 1 số t là số testcase (1\le t\le 10)
  • Sau đó là t dòng, mỗi dòng gồm 2 số nguyên dương n, m (1 \le n \le 2 \times 10^6; 1 \le m \le 3 \times n).

Output

  • Với mỗi testcase, in ra kết quả tương ứng trên 1 dòng.

Scoring

  • Subtask 1 (20\%): 1 \le n \le 2 \times 10^2.
  • Subtask 2 (30\%): 1 \le n \le 2 \times 10^3.
  • Subtask 3 (50\%): Không giới hạn gì thêm.

Example

Input

3
5 1
2 6
3 7

Output

0
1
6
Note
  • Trong testcase 1, ta dễ dàng nhận thấy không có bộ ba nào thỏa mãn
  • Trong testcase 2, chỉ có 1 bộ ba thỏa mãn là (2,2,2).
  • Trong testcase 3, có 6 bộ ba thỏa mãn là (1, 3, 3), (2, 2, 3), (2, 3, 2), (3, 1, 3), (3, 2, 2) và (3, 3, 1).

TLEoj Contest #06 - Đếm hoán vị

giaminh2211

Trong tiết toán thầy giáo cho lớp của giaminh2211 bài toán sau:

Ta gọi 1 hoán vị độ dài n là 1 dãy số bao gồm n phần thử chỉ chứa các giá trị từ 1 đến n sao cho mỗi số chỉ xuất hiện đúng 1 lần và có thể viết dưới bất kỳ thứ tự nào.

Ví dụ với n=3 thì các hoán vị hợp lệ là [1,2,3]; [3,1,2], còn [1,2,2],[4,3,2,1] thì không

Bạn được cho một số nguyên dương n. Nhiệm vụ của bạn là đếm số lượng hoán vị độ dài n sao cho mỗi phần tử trong hoán vị có giá trị lớn hơn hoặc bé hơn tất cả các phần tử đứng trước nó trong hoán vị. Hay nói cách khác, gọi hoán vị là 1 dãy số p_1,p_2,\dots,p_n thì với mọi giá trị i thì thỏa mãn 1 trong 2 điều kiện sau:

  • Với mọi j<i thì p_i>p_j
  • Với mọi j<i thì p_i<p_j

Bạn nghĩ giaminh2211 sẽ nhờ bạn như những người ra đề khác sao? Bạn nhầm rồi, giaminh2211 đã giải được bài toán đó, liệu bạn có làm được như anh ấy không?

Input, Output và Subtasks

Input
  • Dòng đầu tiên chứa số nguyên dương t (1 \leq t \leq 5\times 10^{4}) - số testcase
  • T dòng sau, mỗi dòng chứa số nguyên dương n (1 \leq n \leq 10^{18}).
Output

Với mỗi testcase, in ra kết quả cần tìm trong một dòng. Vì kết quả có thể rất lớn nên bạn chỉ cần xuất ra kết quả sau khi chia lấy dư cho 10^9+7.

Sample và Explain

Sample Input
3
1
2
3
Sample output
1
2
4
Explain
  • Trong testcase thứ ba, các hoán vị thỏa mãn bao gồm: [1,2,3]; [2,1,3]; [2,3,1]; [3,2,1]

TLEoj Contest #06 - Đa giác

thefless

Cho một đa giác lồi A gồm n đỉnh. Đa giác B là đa giác không tự cắt bất kì. Các đỉnh của cả hai đa giác được cho theo chiều kim đồng hồ. Mỗi đa giác không có ba điểm liên tiếp thẳng hàng.

Yêu cầu: Kiểm tra đa giác B có nằm thực sự trong đa giác A hay không? Tức là mọi điểm của B nằm trong đa giác A, không có điểm nào của B nằm trên các cạnh và đỉnh của đa giác A.

Input, Output và Subtasks

Input
  • Dòng đầu tiên chứa số nguyên dương t\ (1\le t\le 200) là số bộ test.
  • T nhóm dòng sau, mỗi nhóm là một bộ test, trong đó:
    • Dòng đầu tiên chứa số nguyên dương n là số đỉnh của đa giác A (3\le n\le 10^5).
    • N dòng tiếp theo, mỗi dòng lưu tọa độ các đỉnh của A với dòng thứ i là tọa độ của điểm x_i, y_i\ (|x_i|,|y_i|\le 10^9). Dữ liệu đảm bảo đa giác A là một đa giác lồi
    • Dòng tiếp theo chứa số nguyên dương m là số đỉnh của đa giác B (3\le n\le 2\times 10^4).
    • Cuối cùng là M dòng, mỗi dòng lưu tọa độ các đỉnh của B với dòng thứ i là tọa độ của điểm X_i, Y_i\ (|X_i|,|Y_i|\le 10^9).
    • Chú ý: Tọa độ của các đỉnh trong đa giác có thể là 1 số thực.
Output

Gồm t dòng, mỗi dòng in kết quả test tương ứng: YES nếu đa giác B thực sự nằm trong đa giác A, và NO trong trường hợp còn lại.

Subtasks
  • Subtask 1 (60\%): n\le 1000,m\le 100
  • Subtask 2 (40\%): Không có ràng buộc gì thêm

Sample

Input (bàn phím)
2
6
-2 1
0 3
3 3
4 1
3 -2
2 -2
4
0 1
2 2
3 1
1 0
5
1 2
4 2
3 -3
-2 -2
-2 1
4
0 1
1 2
4 1
2 -1
Output (màn hình)
YES
NO

TLEoj Contest #06 - A LCA problem

huyhau6a2

huyhau6a2 là 1 người rất thích chơi với cây. Vài hôm trước cậu đã mua về 1 cây thần kỳ, cây này bao gồm n đỉnh. Ngoài ra, cây của huyhau6a2 còn có khả năng đặc biệt là có thể thay đổi gốc bất cứ lúc nào.

Chơi với cây quá chán, cậu quyết định rủ người anh em (khác cha khác mẹ) Kubogi vào chơi cây cùng mình và anh Kubogi đã nghĩ ra 1 trò chơi, trò chơi như sau:

Với mỗi lần, Kubogi sẽ đổi gốc của cây thành x, và huyhau6a2 phải tìm LCA(u,v). Trong đó LCA(u,v) là tổ tiên chung gần nhất của 2 đỉnh u và v.

Input, Output và Subtasks

Input: (bàn phím)
  • Dòng đầu tiên gồm 2 số n,q là số đỉnh của cây và số lượt hỏi (1\le n,q\le 2\times 10^5)
  • Tiếp đó là n-1 dòng, mỗi dòng gồm 2 số u,v là 1 cạnh của cây. Dữ liệu đảm bảo đây là 1 cây hợp lệ (1\le u,v\le n)
  • Cuối cùng là q dòng, mỗi dòng gồm 3 số u,v,x (1\le u,v,x\le n)
Output: (màn hình)
  • Với mỗi câu hỏi, xuất ra kết quả trên một dòng.
Subtasks
  • Subtask 1 (10\%): n\le 1000
  • Subtask 2 (20\%): Mọi câu hỏi luôn có giá trị x không đổi
  • Subtask 3 (30\%): Mọi câu hỏi luôn có giá trị u,v không đổi
  • Subtask 4 (40\%): Không có ràng buộc gì thêm

Sample

Input (bàn phím)
5 5
1 2
1 3
2 4
2 5
4 5 1
4 5 5
5 1 4
5 1 3
1 5 1
Output (màn hình)
2
5
2
1
1

TLEoj Contest #05 - Phần thưởng

__Khac_Trung__

Do giám đốc của công ty A tặng cho nhân viên công ty B kẹo ngậm cho lâu hết nên công ty B quyết định sẽ trả thù lại cho công ty A bằng cách sẽ tặng những quả trứng gà để lâu ngày, hậu quả khi cầm nặng tay là nó sẽ nổ và tạo ra mùi không ổn tý nào.

Nhân viên của A xếp thành một hàng ngang đánh số từ 1 đến n, công ty B muốn tất cả đều phải mở vậy nên tốt nhất là không thể tặng quà 2 người liên tiếp vì nếu một người mở thì người còn lại sẽ biết và không mở nữa. Và công ty B chỉ có k quả trứng. Hãy đếm số cách tặng quà cho công ty A và in ra kết quả sau khi modulo m.

Input, Output và Subtasks

Input
  • Gồm duy nhất 3 số n,k,m\ (1\le m\le n\le 10^6,1\le k\le 2\times 10^9)
Output
  • Kết quả cần tìm sau khi mod\ m

Sample 1

Input
3 2 569
Output
1
Note
  • Chỉ có 1 cách duy nhất thỏa mãn là phát trứng cho người thứ nhất và người thứ ba

TLEoj Contest #05 - Đếm số có k ước

nathan4690

Cho hai số nguyên dương n và k, đếm số lượng số nguyên dương x phân biệt thỏa mãn đồng thời hai điều kiện sau:

  • 1 \leq x \leq n
  • x có đúng k ước nguyên dương

Input, Output và Subtasks

Input
  • Dòng đầu tiên chứa số nguyên dương T là số lượng bộ test (1 \leq T \leq 100)
  • T dòng tiếp theo, mỗi dòng chứa hai số nguyên dương n và k là dữ liệu cho bộ test (1 \leq n \leq 10^9; 1 \leq k \leq 10)
Output
  • Xuất ra T dòng, mỗi dòng chứa một số nguyên dương là kết quả tương ứng trong từng bộ test
Subtasks
  • Subtask 1 (20\%): n \leq 100; k \leq 3
  • Subtask 2 (20\%): n \leq 5000
  • Subtask 3 (20\%): n \leq 3 \times 10^5
  • Subtask 4 (20\%): n \leq 10^7; k \leq 5
  • Subtask 5 (20\%): Không có ràng buộc gì thêm

Sample 1

Input
3
3 1
10 2
49 3
Output
1
4
4
Note
  • Trong testcase 1, chỉ có số 1 thỏa mãn có 1 ước
  • Trong testcase 2, có 4 số thỏa mãn là 2,3,5,7
  • Trong testcase 3, có 4 số thỏa mãn là 4,9,25,49

TLEoj Contest #05 - Đếm cây

abcdzxzx

Cho cây không trọng số N đỉnh. Gọi dist(u,v) là độ dài của đường đi đơn từ u đến v trên cây. Đếm số cách chọn một tập S = \{u_1,u_2,...,u_K\} thoả mãn:

  • 1 \leq u_1<u_2<...<u_K \leq N
  • Với mọi bộ chỉ số (i,j,k) (1 \leq i,j,k \leq K; i \neq j \neq k): dist(u_i,u_j)+dist(u_j,u_k)>dist(u_i,u_k).

Input, Output và Subtasks

Input
  • Dòng đầu chứa hai số nguyên N và K (3 \leq K \leq N \leq 5000).
  • N-1 dòng sau, mỗi dòng chứa 2 số nguyên dương u, v (1 \leq u,v \leq N, u \neq v) thể hiện một cạnh của cây.

Các số trên cùng một dòng cách nhau bởi một dấu cách.

Output

Ghi một số nguyên duy nhất là số cách chọn thoả mãn. Vì kết quả có thể rất lớn, hãy in ra kết quả chia lấy dư cho 998244353.

Subtasks
  • Subtask 1 (10\%): N\le 20
  • Subtask 2 (20\%): N\le 200
  • Subtask 3 (30\%): K=3
  • Subtask 4 (40\%): Không có ràng buộc gì thêm

Sample 1

Input
7 4
3 2
3 7
7 1
3 6
3 4
7 5
Output
6
Note

Các tập thỏa mãn: (1,2,4,5);(1,2,4,6);(1,2,5,6);(1,4,5,6);(2,4,5,6);(2,4,6,7)

Sample 2

Input
5 3
3 2
2 1
1 5
2 4
Output
2
Note

Các tập thỏa mãn: (1,3,4);(3,4,5)

TLEoj Contest #05 - Đếm bảng ký tự

Noobcoder

Cho một bảng kí tự gồm n hàng và m cột. Các hàng được đánh số từ 1→n từ trên xuống dưới, và các cột được đánh số từ 1→m từ trái sang phải. Bạn có thể thực hiện thao tác sau vô hạn lần (hoặc không thực hiện lần nào):

  • Chọn hàng thứ i trên bảng, và đẩy kí tự đầu tiên của hàng đó ra phía sau của hàng (1≤i≤n) (ví dụ với xâu \text{haudepzai} thì nếu để kí tự đầu tiên vào sau hàng thì sẽ là \text{audepzaih})

Hãy tính xem, với vô số cách xoay bảng, có thể có bao nhiêu cách thực hiện thao tác sao cho sẽ có một xâu đối xứng xuất hiện tại cột thứ nhất? Biết rằng, hai cách thực hiện xoay bảng được tính là khác nhau khi bảng kí tự được tạo ra sau khi xoay bằng hai cách là khác nhau.

Explanation

Chúng ta tạm gọi c_i là số lần thực hiện thao tác ở hàng thứ i (và mảng C = \left\{c_1, c_2, c_3, ..., c_n\right\} thể hiện một cách xoay bảng).
Giả sử chúng ta có một bảng như sau: P = \left[\begin{array}{c} \text{aba} \\ \text{bba} \\ \text{cba} \end{array}\right] (có n = m = 3).
Hai cách xoay bảng P là C_1 = \left\{1, 2, 1\right\} và C_2 = \left\{2, 1, 2\right\} được xem là hai cách khác nhau vì:

  • Bảng được tạo thành đối với cách thứ nhất và cách thứ 2 lần lượt là P_1 = \left[\begin{array}{c} \text{baa} \\ \text{abb} \\ \text{bac} \end{array}\right], P_2 = \left[\begin{array}{c} \text{aab} \\ \text{bab} \\ \text{acb} \end{array}\right];
  • P_1 \ne P_2 \Rightarrow hai cách xoay bảng C_1 và C_2 là khác nhau.

Còn đối với hai cách xoay bảng P là C_1 (như trên) và C_3 = \left\{4, 8, 1\right\}, chúng được xem là giống nhau vì sau khi thực hiện cả hai cách này thì đều cho bảng P' = \left[\begin{array}{c} \text{baa} \\ \text{abb} \\ \text{bac} \end{array}\right].

Input, Output và Subtasks

Input

Dòng 1 gồm số q là các bộ test con (subtest) cần được xử lý (1\le q\le 50).

Mỗi bộ test con gồm các dữ liệu như sau:

  • Dòng 1 gồm hai số n, m (1\le n, m\le 10^3);
  • n dòng sau, mỗi dòng gồm có m kí tự Latinh thường, giữa hai kí tự bất kì trong 1 dòng không có khoảng trắng.

Các số trên cùng một dòng cách nhau bởi một dấu cách.

Output

Gồm q dòng là kết quả cho q subtest. Mỗi truy vấn thứ i có giá trị k_i chỉ số cách xoay bảng tạo xâu đối xứng tại cột thứ nhất với bảng của subtest thứ i.

Lưu ý: Vì các kết quả có thể rất lớn nên các bạn cần in kết quả dưới dạng phần dư của phép chia kết quả cho 10^9+7.

Subtasks
  • Subtask 1 (7.5\%): n,m\le 7,q\le 2
  • Subtask 2 (22.5\%): q\le 10
  • Subtask 3 (70\%): Không có ràng buộc gì thêm

Sample 1

Input
2
2 2
ac
ab
3 3
aba
bba
cba
Output
1
9
Note

Testcase #1: Giữ nguyên bảng và ta sẽ có được xâu đối xứng ở cột thứ nhất của bảng ("\text{aa}")
Testcase #2: Các bảng thỏa mãn bao gồm: \left[\begin{array}{c} \text{aba} \\ \text{bba} \\ \text{acb} \end{array}\right], \left[\begin{array}{c} \text{aba} \\ \text{bab} \\ \text{acb} \end{array}\right], \left[\begin{array}{c} \text{aba} \\ \text{abb} \\ \text{acb} \end{array}\right], \left[\begin{array}{c} \text{aab} \\ \text{bba} \\ \text{acb} \end{array}\right], \left[\begin{array}{c} \text{aab} \\ \text{bab} \\ \text{acb} \end{array}\right], \left[\begin{array}{c} \text{aab} \\ \text{abb} \\ \text{acb} \end{array}\right], \left[\begin{array}{c} \text{baa} \\ \text{bba} \\ \text{bac} \end{array}\right], \left[\begin{array}{c} \text{baa} \\ \text{bab} \\ \text{bac} \end{array}\right], \left[\begin{array}{c} \text{baa} \\ \text{abb} \\ \text{bac} \end{array}\right]

TLEoj Contest #05 - Giá trị Sussy

flo

Giá trị Sussy của một số nguyên dương n (kí hiệu là Sussy(n)) là n sau khi các chữ số của nó được sắp xếp lại và loại bỏ các chữ số 0 vô nghĩa. Ví dụ:

  • Sussy(69420) = 2469; Sussy(1412) = 1124.

Cho hai số nguyên dương l, r, hãy tính \sum_{i=l}^{r} Sussy(i).

Input, Output and Scoring

Input

  • Số nguyên dương q (1 \le q \le 5 \times 10^4).
  • Hai số nguyên dương l, r (1 \le l \le r \le 10^{18}).

Output

  • Với mỗi dòng, hãy in ra kết quả chia lấy dư 1234567891.

Scoring

  • Subtask 1 (30\%): 1 \le l \le r \le 10^6.
  • Subtask 2 (70\%): Không giới hạn gì thêm.

Input and Output

Input

2
13 98
69 420

Output

3297
57282