Trò chơi (Bà Rịa Vũng Tàu 2023)

Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.

  • Tệp vào: GAME.INP
  • Tệp ra: GAME.OUT
  • Thời gian chạy: 1.0s
  • Bộ nhớ: 1024MB

TLE Speedrun - Tổng bình phương

Sunlight
Input và Output
Input
  • Dòng đầu tiên gồm một số nguyên dương N (N \le 5 \times 10^4).
Output
  • Tổng các giá trị (i - j)^2 với mọi 1 \le i, j \le N.
Sample
Input
3
Output
12

TLEoj Contest #01 - Cặp số đầy đủ

huyhau6a2

Bạn được cho một hoán vị a độ dài n. Một cặp số (l,r) được gọi là cặp số đầy đủ nếu với mọi l\le i\le r thì l\le a_i\le r.

Bạn được cho q truy vấn, mỗi truy vấn gồm 2 số l,r. Nhiệm vụ của bạn là với mỗi truy vấn, hãy đếm số lượng cặp số (u,v)\ (l\le u\le v\le r) thỏa mãn (u,v) là cặp số đầy đủ

Input, Output và Subtasks

Input
  • Dòng đầu tiên gồm 2 số nguyên dương n và q (1 \le n,q \le 10^5).
  • 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 n). Các giá trị a_i đôi một phân biệt
  • q dòng tiếp theo, mỗi dòng gồm 2 giá trị l,r (1\le l\le r\le n)
Output
  • Với mỗi truy vấn, xuất ra kết quả tương ứng trong một dòng
Subtasks
  • Subtask 1 (25\%): n\le 1000.
  • Subtask 2 (25\%): q=1,l=1,r=n
  • Subtask 3 (50\%): Không có ràng buộc gì thêm

Sample

Input
4 4
1 2 4 3
1 4
1 2
2 4
3 4
Output
6
3
3
1
Note
  • Các cặp số đầy đủ: (1,1), (1,2), (1,4), (2,2), (2,4), (3,4)

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

Quản lý ngày công (Huế (TP Huế) 2023)

Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.

  • Tệp vào: DAY.INP
  • Tệp ra: DAY.OUT
  • Thời gian chạy: 1.0s
  • Bộ nhớ: 1024MB

Trọng số tối đa

huyhau6a2

Trọng số của một dãy số nguyên là tổng của dãy nhân với số phần tử của dãy. Ví dụ trọng số của dãy (4,-2,3,1) là 6\cdot 4=24

Cho dãy số nguyên a=a_1,a_2,\dots,a_n. Hãy tách a thành các dãy con (không nhất thiết kề nhau) sao cho tổng trọng số của các dãy con là lớn nhất có thể

Input, Output và Subtasks

Input
  • Dòng đầu tiên chứa số nguyên dương n (n\le 10^5)
  • Dòng thứ hai chứa n số nguyên a_1,a_2,\dots,a_n (-10^8\le a_i\le 10^8)
Output
  • Một số nguyên là tổng trọng số lớn nhất tìm được
Subtasks
  • Subtask 1 (12\%): n \le 20
  • Subtask 2 (28\%): n \le 1000
  • Subtask 3 (60\%): Không có giới hạn gì thêm

Sample 1

Input
6
3 -1 -5 3 -2 6
Output
40

Trò chơi xâu ký tự (Bình Định 2023)

Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.

  • Tệp vào: STRGAME.INP
  • Tệp ra: STRGAME.OUT
  • Thời gian chạy: 1.0s
  • Bộ nhớ: 256MB

Truy lùng vị trí

icebearlovecode

Cabral đang truy lùng ataide trên mặt phẳng hệ tọa độ Descartes, biết ataide ban đầu ở vị trí (0;0).
Tại mỗi bước ataide sẽ chọn một hướng đi lên trên, xuống dưới, trái hoặc phải. Anh ấy sẽ tiếp tục đi thẳng đến khi nào gặp điểm mà anh ấy chưa từng đi qua, thì anh sẽ dừng lại và đi theo hướng tiếp theo. Tổng cộng anh ấy đã chọn chính xác n hướng.
Yêu cầu: biết các hướng đi của ataide hãy tìm điểm mà ataide ở đó sau n hướng đi.

Input, Output and Subtask

Input (TRUYLUNG.inp)
  • Dòng đầu tiên chứa một số nguyên dương n và m (1≤n≤10^5)
  • Dòng tiếp theo chứa xâu s có n kí tự L,R,U,D tương ứng với:
    L đi sang trái.
    R đi sang phải.
    U đi lên trên.
    D đi xuống dưới.
Output (TRUYLUNG.out)
  • Dòng đầu tiên gồm hai số nguyên x và y tương ứng với vị trí (x,y) của ataide sau n hướng đi.
Subtask
  • Subtask 1: (20\%) s_i=s_{i+1} với i\le n-1.
  • Subtask 2: (30\%) n\le 1000.
  • Subtask 3: (50\%) không có giới hạn gì thêm.

Sample

TRUYLUNG.inp
4
LRLR
TRUYLUNG.out
2 0
Note

Các vị trí mà ataide đã đi qua là (0;0)\rightarrow(-1;0)\rightarrow(1;0)\rightarrow(-2;0)\rightarrow(2;0).

Cộng một kiểu Đức (THTC2 ĐN 2023)

Sunlight

Đức vừa phát minh ra một phép toán cộng độc đáo và đặt tên cho nó là "cộng một kiểu Đức", cách cộng như sau: Mỗi lần cộng một số nguyên cho một thay vì tăng giá trị của số đó lên một đơn vị Đức lại tăng tất cả các chữ số của nó lên một đơn vị

VD1: 15 "cộng một kiểu Đức" sẽ cho kết quả là 26

VD2: 91 "cộng một kiểu Đức" sẽ cho kết quả là 102

Yêu cầu: Với T số nguyên dương N cho trước hãy tính toán và cho biết sau khi thực hiện K lần phép cộng một kiểu Đức thì kết quả sinh ra có bao nhiêu chữ số. Vì câu trả lời có thể rất lớn do đó hãy in ra kết quả sau khi mod\ 10^9+7

Input, Output và Subtasks

Input: (CONG.inp)
  • Dòng thứ nhất chứa số nguyên T (1\le T\le 2\cdot 10^5)
  • T dòng tiếp theo, mỗi dòng chứa 2 số nguyên lần lượt là N và K (1\le N\le 10^9,1\le K\le 2\cdot 10^5)
Output: (CONG.out)
  • Với mỗi trường hợp in ra số lượng chữ số của kết quả chia lấy dư cho 10^9+7
Subtasks
  • Subtask 1 (30\%): T\le 10,K\le 20
  • Subtask 2 (20\%): T\le 100,K\le 50
  • Subtask 3 (50\%): Không có ràng buộc gì thêm

Sample 1

Input (CONG.inp)
2
9812 2
9899 3
Output (CONG.out)
6
8
Note

9812\rightarrow 10923\rightarrow 211034
9899\rightarrow 1091010\rightarrow 21102121\rightarrow 32213232

Giúp mẹ (Huế 2024)

Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.

  • Tệp vào: GME.INP
  • Tệp ra: GME.OUT
  • Thời gian chạy: 1.0s
  • Bộ nhớ: 1024MB

Cây tìm kiếm nhị phân tối ưu

haiender288

Cây nhị phân tìm kiếm (Binary Search Tree – BST) trên tập n khóa số nguyên là một cây nhị phân thỏa mãn: Mỗi nút chứa đúng một khóa và khóa trong một nút lớn hơn mọi khóa trong nhánh con trái và nhỏ hơn mọi khóa trong nhánh con phải. Có nhiều cấu trúc BST để biểu diễn một tập các khóa. Như hình dưới đây là hai BST biểu diễn tập các khóa \{1,2,3,4,5,6\}.

Quá trình tìm kiếm một giá trị x trên BST thực hiện như sau: Bắt đầu từ nút gốc, tại mỗi bước, x được so sánh với khóa tại nút đang đứng (y):

  • Nếu x=y, quá trình tìm kiếm kết thúc, kết luận x có trong BST
  • Nếu x<y, đi sang nhánh con trái và quá trình tìm kiếm tiếp tục trong cây con trái bằng cách tương tự
  • Nếu x>y, đi sang nhánh con phải và quá trình tìm kiếm tiếp tục trong cây con phải bằng cách tương tự

Nếu tại một bước nào đó, thuật toán không thể đi tiếp được theo luật trên, quá trình tìm kiếm dừng và kết luận x không có trong BST.
Chi phí một phép tìm kiếm giá trị x bằng số phép so sánh khóa được thực hiện trong thuật toán. Như ở hình trên, để tìm khóa 3 trong cây (a) ta cần 3 phép so sánh trong khi đó để tìm khóa 3 trong cây (b) ta chỉ cần 2 phép so sánh.
Yêu cầu: Cho n khóa đánh số từ 1 tới n theo thứ tự tăng dần của các khóa, biết rằng người ta thực hiện c_i lần phép tìm kiếm khóa i trên cấu trúc BST biểu diễn tập khóa này (\forall i = 1,2,...,n). Hãy tìm cấu trúc BST sao cho tổng chi phí các phép tìm kiếm là nhỏ nhất.

Input, Output

Input: (OPTBST.inp)
  • Dòng 1 chứa số nguyên dương n\leq 2000
  • Dòng 2 chứa n số nguyên không âm c_1,c_2,...,c_n cách nhau bởi dấu cách (\forall i: c_i\leq 10^9)
Output: (OPTBST.out)
  • Ghi ra một số nguyên duy nhất là tổng chi phí (tính bằng số phép so sánh khóa được thực hiện) trên cấu trúc BST tìm được

Sample

Input (OPTBST.inp)
6
4 9 5 1 3 2 
Output (OPTBST.out)
48

Vòi tưới nước (Hải Phòng 2026)

Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.

  • Tệp vào: stdin
  • Tệp ra: stdout
  • Thời gian chạy: 1.0s
  • Bộ nhớ: 1025MB

Python Basic Contest #01 - Đếm số nguyên tố trên đoạn

Sunlight

Bạn được cho hai số nguyên dương (l, r). Bạn cần đếm số lượng số nguyên tố trong đoạn [l, r].

Input, Output và Subtask

Input (bàn phím)
  • Một dòng duy nhất gồm hai số nguyên dương l, r (l, r \le 10^{12}, r - l \le 10^6).
Output (màn hình)
  • Một dòng duy nhất gồm số lượng số nguyên tố trong đoạn [l, r].
Subtask
Tỉ lệ điểm (%) Giới hạn
20 l = 1, r \le 1000
20 l = 1, r \le 4 \times 10^4
20 l = 1
20 r - l \le 2000
10 r - l \le 10^5
10 Không có giới hạn gì thêm
Sample 1
Input (bàn phím)
8 20
Output (màn hình)
4
Notes
  • Các số nguyên tố trong đoạn [8, 20] là 11, 13, 17, 19.
Sample 2
Input (bàn phím)
1 100
Output (màn hình)
25

Make It Divisible By 6

moi_hoc_code

Cho một số N có tối đa 100 chữ số và không có chữ số 0 vô nghĩa nào ở đầu. Bạn được phép thực hiện thao tác sau:

  • Chọn một vị trí trong số N dưới dạng xâu kí tự (biết xâu kí tự này được đánh số bắt đầu từ 1). Xóa số đó khỏi xâu và trả xâu mới đó về lại dạng số, tạo ra số N mới. Nếu như số N ban đầu chỉ có 1 chữ số, thao tác này sẽ tự động đưa giá trị biến N trở về 0.

Ví dụ: Nếu N = 69420, với một thao tác thì các số N mới có thể là 9420 (xóa chữ số đầu), 6420 (xóa chữ số thứ hai), 6920 (xóa chữ số thứ ba), 6940 (xóa chữ số thứ tư, và 6942 (xóa chữ số thứ năm).

Hãy cho biết cần tối thiểu bao nhiêu lần thực hiện thao tác để tạo ra được một số N mới lớn nhất có thể sao cho N chia hết cho 6, và không có bất kì chữ số 0 vô nghĩa nào.

Input [standard]

  • Mỗi test bao gồm một số duy nhất là số N, có tối đa 100 chữ số (1≤N<10^{100}).

Output [standard]

  • In ra số X lớn nhất thỏa
    • X ≤ N;
    • X chia hết cho 6;
    • Số X có thể thu được bằng một chuỗi các thao tác trên lên số N

Scoring

  • 100\% số test có giới hạn như đề đã cho.

Example Tests

Example Test #1

INPUT

2

OUTPUT

0

Explanation

Ở test ví dụ số 1, 0/6=0.

Example Test #2

INPUT

1358

OUTPUT

138

Explanation

Ở test ví dụ số 2, 138/6=23.

Example Test #3

INPUT

69420

OUTPUT

69420

Explanation

Ở test ví dụ số 3, 69420/6=11570.

Software (OLP 30/4 2023)

Sunlight

Tâm rất yêu thích lập trình tạo phần mềm. Vào dịp rảnh rỗi Tâm đã thiết kế một phần mềm đơn giản. Màn hình phần mềm gồm N địa điểm (đánh số từ 1 đến N), trong đó mỗi địa điểm có đặt một bóng đèn ở trạng thái sáng hoặc tắt. Có N-1 con đường một chiều nối trực tiếp giữa các cặp điểm. Mỗi lần Tâm chạm tay vào một địa điểm X_i bất kỳ trên màn hình thì sẽ có một robot xuất phát từ địa điểm X_i di chuyển theo các con đường một chiều, cuối cùng kết thúc ở địa điểm 1. Robot không thay đổi trạng thái đèn ở địa điểm X_i và địa điểm 1, các địa điểm còn lại robot đã đi qua thì đèn ở địa điểm đó sẽ thay đổi sang trạng thái ngược lại (sáng thành tắt, tắt thành sáng)

Yêu cầu: Hãy cho biết khi Tâm thực hiện K lần chạm tay (mỗi lần chạm tay vào một địa điểm) thì sau đó sẽ có bao nhiêu địa điểm có đèn sáng. Biết rằng robot xuất phát từ địa điểm bất kỳ luôn có thể di chuyển theo các con đường một chiều đến địa điểm 1

Input, Output và Subtasks

Input: (SOFTWARE.inp)
  • Dòng đầu tiên gồm 2 số nguyên dương N và K lần lượt là số địa điểm, số lần chạm tay (1\le N,K\le 10^5)
  • Dòng thứ hai gồm N số nguyên cho biết trạng thái đèn ở N địa điểm, lần lượt theo thứ tự từ địa điểm 1 đến N. Trạng thái đèn tắt là 0, sáng là 1
  • Dòng thứ i trong N-1 dòng tiếp theo gồm 2 số nguyên dương A_i và B_i (1\le A_i,B_i\le N) cho biết có con đường một chiều nối trực tiếp từ địa điểm A_i đến B_i
  • Dòng cuối cùng gồm K số nguyên dương, trong đó số nguyên thứ i là X_i (1\le X_i\le N) cho biết địa điểm thứ i mà Tâm thực hiện chạm tay
Output: (SOFTWARE.out)
  • Số nguyên duy nhất là kết quả cần tìm
Subtasks
  • Subtask 1 (50\%): 1\le N,K\le 5000
  • Subtask 2 (50\%): Không có ràng buộc gì thêm

Sample 1

Input (SOFTWARE.inp)
5 3
1 0 0 0 0
2 1
4 2
3 2
5 4
4 5 4
Output (SOFTWARE.out)
3
Note

Tâm chạm tay 3 lần:

  • Lần 1 ở địa điểm 4: robot đi qua các địa điểm 4,2,1 và thay đổi trạng thái đèn ở địa điểm 2
    Kết quả trạng thái 5 đèn theo thứ tự lần lượt là: 1 1 0 0 0
  • Lần 2 ở địa điểm 5: robot đi qua các địa điểm 5,4,2,1 và thay đổi trạng thái đèn ở địa điểm 4,2
    Kết quả trạng thái 5 đèn theo thứ tự lần lượt là: 1 0 0 1 0
  • Lần 3 ở địa điểm 4: robot đi qua các địa điểm 4,2,1 và thay đổi trạng thái đèn ở địa điểm 2
    Kết quả trạng thái 5 đèn theo thứ tự lần lượt là: 1 1 0 1 0

Sau 3 lần chạm tay, có 3 địa điểm có đèn sáng là địa điểm 1, 2 và 4

Sample 2

Input (SOFTWARE.inp)
4 1
0 0 0 0
3 1
2 3
4 2
4
Output (SOFTWARE.out)
2