TLEOJ [x QTOJ] Contest #13 - P - Xếp bi

Sunlight

Đếm số cách xếp 2n viên bi lên bảng vuông kích thước n \times n sao cho mỗi hàng và mỗi cột có chính xác hai viên bi.

Input và Output

Input: (bàn phím)
  • Một dòng duy nhất gồm một số nguyên dương n (2 \le n \le 10^9).
Output: (màn hình)
  • Một dòng duy nhất gồm số cách xếp. Vì kết quả có thể rất lớn nên chỉ cần in ra phần dư của kết quả sau khi chia cho 10^9 + 7.

Sample 1

Input (bàn phím)
2
Output (màn hình)
1
Note
  • Chỉ có một cách xếp duy nhất là xếp 4 viên bi vào 4 ô trên bàn cờ.

Sample 2

Input (bàn phím)
3
Output (màn hình)
6
Note
  • Gọi ((1, a), (2, b), (3, c)) là các ô không được xếp bi. Do a, b, c đôi một phân biệt nên có 3! = 6 cách chọn tương ứng với 6 cách xếp bi.

TLEOJ [x QTOJ] Contest #13 - O - Lại là biểu thức

flo

Cho dãy a gồm n phần tử a_1, a_2, ..., a_n, hãy in ra tất cả cách điền n-1 dấu + và - vào giữa các phần tử để tạo thành 1 biểu thức sao cho biểu thức nhận được có kết quả là m.

Input, Output and Scoring

Input
  • 2 số nguyên dương n, m (1 \le n \le 40; 1 \le |m| \le 10^9).
  • Dãy a gồm n phần tử a_1, a_2, ..., a_n (1 \le |a_i| \le 10^9).
Output
  • In ra số lượng và tất cả cách điền theo thứ tự từ điển.
  • Dữ liệu đảm bảo số lượng cách điền luôn bé hơn 10^5.

Test 1

Input
6 7
6 5 8 3 1 2    
Output
2
+-+-+
-+--+

Test 2

Input
4 5
1 2 3 2   
Output
0

TLEOJ [x QTOJ] Contest #13 - N - Biểu thức cộng trừ

Sunlight

Cho một biểu thức chỉ gồm các số hạng và các phép tính cộng và trừ. Tính giá trị biểu thức được cho.

Input và Output

Input: (bàn phím)
  • Một dòng duy nhất gồm một xâu biểu thức cần tính giá trị. Xâu chỉ gồm các ký tự số và các dấu + và -. Các số hạng trong biểu thức đều là các số nguyên dương và không vượt quá 10^9. Độ dài biểu thức không vượt quá 10^5 ký tự.
Output: (màn hình)
  • Một dòng duy nhất là kết quả của biểu thức.

Sample

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

TLEOJ [x QTOJ] Contest #13 - M - Hình thang

Sunlight

Xét một hình thang có hai đáy AB và CD song song với nhau. Biết rằng AB = a, BC = b, CD = c, DA = d. Nhiệm vụ của bạn là với mỗi bộ số (a, b, c, d), kiểm tra xem có tồn tại hình thang như vậy hay không.

Input và Output

Input: (bàn phím)
  • Dòng đầu tiên gồm một số nguyên dương t là số bộ dữ liệu (1 \le t \le 10^5).
  • Tiếp theo là t dòng, mỗi dòng gồm bốn số nguyên dương a, b, c, d (1 \le a, b, c, d \le 10^9).
Output: (màn hình)
  • Gồm t dòng, dòng thứ i là YES nếu bốn số trong bộ dữ liệu thứ i có thể tạo thành hình thang, ngược lại dòng thứ i là NO.

Sample

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

TLEOJ [x QTOJ] Contest #13 - L - Cặp phân số kỳ diệu

Sunlight

Một cặp phân số \frac{a}{b} và \frac{c}{d} được gọi là kỳ diệu khi \frac{a}{b} + \frac{c}{d} = \frac{a + c}{b + d}.

Bạn được cho một dãy các phân số, đếm xem có bao nhiêu cặp phân số kỳ diệu trong các phân số này.

Input và Output

Input: (bàn phím)
  • Dòng đầu tiên gồm một số nguyên dương n - số lượng phân số (1 \le n \le 3 \times 10^5).
  • Dòng tiếp theo gồm n số nguyên a_1, a_2, ..., a_n - tử số của các phân số (|a_i| \le 10^9).
  • Dòng tiếp theo gồm n số nguyên dương b_1, b_2, ..., b_n - mẫu số của các phân số (1 \le b_i \le 10^9).
  • Lưu ý: Các phân số không nhất thiết phải tối giản.
Output: (màn hình)
  • Một dòng duy nhất là số cặp phân số kỳ diệu tìm được.

Sample

Input (bàn phím)
3
1 -1 -4
2 2 4
Output (màn hình)
2
Note
  • Cặp phân số (\frac{1}{2}, \frac{-1}{2}) là cặp phân số kỳ diệu vì \frac{1}{2} + \frac{-1}{2} = \frac{0}{4}.
  • Tương tự, cặp phân số (\frac{1}{2}, \frac{-4}{4}) cũng là cặp phân số kỳ diệu vì \frac{1}{2} + \frac{-4}{4} = \frac{-3}{6}.

TLEOJ [x QTOJ] Contest #13 - K - Bộ ba đẹp

giaminh2211

giaminh2211 gặp phải bài toán sau: Cho số n đếm số bộ ba số nguyên dương đẹp (a, b, c) sao cho n \ge a \ge b \ge c, a, b, c tạo thành 3 cạnh của tam giác vuông và a + b = c^2. giaminh2211 đã giải được và thấy bài toán có vẻ hay nên chia sẻ với bạn.

Input và Output

Input: (bàn phím)
  • Dòng đầu tiên gồm một số nguyên dương t - số bộ dữ liệu cần xử lý. (t \le 10^5).
  • t dòng tiếp theo, mỗi dòng gồm một số nguyên dương n (n \le 10^{18}).
Output: (màn hình)
  • Gồm t dòng, dòng thứ i là kết quả của bộ dữ liệu thứ i.

Sample

Input (bàn phím)
3
3
19
100
Output (màn hình)
0
2
6

TLEOJ [x QTOJ] Contest #13 - J - Duolingo

i_love_moonlight

Ôi không, bạn đã làm mất streak Duolingo của bạn 💀

Duolingo là một trong những nền tảng học các ngôn ngữ nước ngoài miễn phí và lớn nhất. Mặc dù học tiếng Anh với chú cú xanh Duolingo rất vui, nhưng điều đáng sợ nhất mà đã ám ảnh mondellbit009 suốt đời:

Nếu bạn làm mất streak Duolingo của bạn, ngay lập tức, bạn sẽ bị đưa tới một nơi không xác định để chuộc lại lỗi lầm khi để mất streak 💀. Đến giờ, những người bị mất tích do làm mất streak vấn chưa được tìm thấy 💀💀.

mondellbit009 cũng là một người dùng duolingo lâu năm, nhưng mà cậu ấy vẫn sợ về cái vụ streak ấy, nên là cậu có một phương pháp dàn trận như TFT: Xếp ngày, xếp lịch, chuẩn bị vật phẩm giúp mondellbit009 tránh khỏi việc cậu bị bắt do ngủ quên mà không làm Duolingo.

Phương pháp xếp lịch của mondellbit009 như sau:

  • Đâu tiên, cậu ta sẽ cho n ngày làm, và mua k vật phẩm.
  • Sau đó cậu ta sẽ xếp vào ngày thứ i (1 \le i \le n) là làm hay không làm. Nếu cậu xếp ngày đó là 1 thì cậu sẽ làm vào ngày đó, còn nếu cậu xếp ngày đó là 0 thì ngược lại.
  • Lưu ý: Cứ với 1 vật phẩm chỉ được dùng 1 lần cho cho mỗi ngày không làm.

Biết là có khả năng dàn trận vjp pro (6 trận ranked thì 9 trận Top 8), nhưng khổ cái là cậu ta được có 5 điểm toán 💀. Nên là bạn hãy là một teammate tốt để giúp cậu ấy khỏi bị con cú chết tiệt đấy bắt nhé.

Input và Output

Input: (bàn phím)
  • Dòng đầu tiên nhập t (1 \le t \le 69) là số testcase.
  • Tiếp theo là t nhóm dòng, mỗi nhóm dòng có dạng như sau:
    • Dòng đầu tiên nhập hai số n, k (1 \le n \le 100, 0 \le k \le 100) là số ngày làm và số lượng vật phẩm đã chuẩn bị.
    • Dòng tiếp theo nhập dãy a gồm n phần tử chỉ có 2 giá trị 0 nếu ngày thứ i (1 \le i \le n) không làm, và 1 nếu ngày thứ i có làm.
Output: (màn hình)
  • Gòm t dòng:
    • Nếu ngày đấy mondellbit009 xếp trận mà thoát khỏi Duolingo thì in ra YES, ngược lại in ra NO

Sample

Input (bàn phím)
4
5 2
1 0 1 1 0
6 6
0 0 0 0 0 0
7 4
1 0 0 0 1 0 0
5 0
1 1 1 1 1 
Output (màn hình)
YES
YES
NO
YES
Note
  • Ở testcase thứ nhất, cậu ấy chỉ cần dùng vật phẩm vào ngày 2 và ngày 5 là ổn
  • Ở testcase thứ ba, cậu ấy không làm tới 5 ngày mà chuẩn bị được có 4 vật phẩm, nên cậu ta có nguy cơ bị bắt
  • Ở testcase cuối, cậu ấy đã làm hết 5 ngày nên ổn

p/s: bạn hãy đếm xem có bao nhiêu 💀 được sử dụng trong đề bài này 💀💀💀💀

TLEOJ [x QTOJ] Contest #13 - I - Tích bằng nhau

Sunlight, i_loveMaiPhuong

Cho hai dãy a_1, a_2, ..., a_n và b_1, b_2, ..., b_m. Kiểm tra xem tích hai dãy đó có bằng nhau hay không.

Bạn phải xử lý nhiều bộ dữ liệu như vậy.

Input và Output

Input: (bàn phím)
  • Dòng đầu tiên gồm một số nguyên dương t - số bộ dữ liệu bạn cần xử lý (1 \le t \le 10^5). Tiếp theo là t nhóm dòng, mỗi nhóm có dạng như sau:
    • Dòng đầu tiên gồm hai số nguyên dương n, m (1 \le n, m \le 10^5).
    • Dòng tiếp theo gồm n số nguyên dương a_1, a_2, ..., a_n (1 \le a_i \le 10^{18}).
    • Dòng cuối cùng gồm m số nguyên dương b_1, b_2, ..., b_m (1 \le b_i \le 10^{18}).
  • Dữ liệu đầu vào đảm bảo tổng các giá trị n + m trong các bộ dữ liệu không vượt quá 2 \times 10^5.
Output: (màn hình)
  • Gồm t dòng, dòng thứ i là YES nếu bộ dữ liệu thứ i thỏa mãn đề bài, ngược lại, dòng thứ i là NO.

Sample

Input (bàn phím)
2
2 3
10 6
3 4 5
3 3
1 2 3
2 3 4
Output (màn hình)
YES
NO
Note
  • Ở bộ dữ liệu đầu tiên, 10 \times 6 = 3 \times 4 \times 5 = 60.
  • Ở bộ dữ liệu thứ hai, 1 \times 2 \times 3 = 6, trong khi 2 \times 3 \times 4 = 24.

TLEOJ [x QTOJ] Contest #13 - H - Vẽ hình

Sunlight

Xét một bảng hình chữ nhật gồm n \times m điểm, xếp thành n hàng m cột. Các cột được đánh số từ 1 đến m từ trái sang phải, các hàng được đánh số từ 1 đến n từ dưới lên trên. Điểm ở hàng i cột j ký hiệu là (i, j). Hai điểm liên tiếp trên một hàng hoặc một cột cách nhau 1.

Vẽ một đường tròn có tâm là điểm (u, v) và bán kính r. Xóa toàn bộ các điểm nằm trong hoặc trên đường tròn.

In ra bảng sau khi thực hiện thao tác xóa.

Input và Output

Input: (bàn phím)
  • Một dòng duy nhất gồm năm số nguyên dương n, m, u, v, r (1 \le u \le n \le 200, 1 \le v \le m \le 200, 1 \le r \le 10^{18}).
Output: (màn hình)
  • Gồm n hàng, mỗi hàng gồm m ký tự. Ký tự thứ i ở hàng j là # khi và chỉ khi điểm ở hàng i cột j chưa bị xóa, ngược lại, ký tự thứ i ở hàng j là ..

Sample

Input (bàn phím)
6 7 1 1 5
Output (màn hình)
.######
....###
.....##
.....##
.....##
......#
Note

TLEOJ [x QTOJ] Contest #13 - G - Dãy đẹp

Sunlight

Một dãy đẹp là một dãy x_1, x_2, ..., x_k mà gcd(x_i, x_{i + 1}) > 1 với mọi i.

Bạn được cho một dãy a[1], a[2], ..., a[n]. Tìm một dãy l_1 < l_2 < ... < l_k sao cho k lớn nhất có thể và a[l_1], a[l_2], ..., a[l_k] là một dãy đẹp.

Input và Output

Input: (bàn phím)
  • Dòng đầu tiên gồm một số nguyên dương t - số bộ dữ liệu bạn cần xử lý (1 \le t \le 10^5). Tiếp theo là t nhóm dòng, mỗi nhóm có dạng như sau:
    • Dòng đầu tiên gồm một số nguyên dương n (1 \le n \le 10^5).
    • Dòng tiếp theo gồm n số nguyên dương a_1, a_2, ..., a_n (1 \le a_i \le 10^9).
  • Dữ liệu đầu vào đảm bảo tổng các giá trị n trong các bộ dữ liệu không vượt quá 10^5.
Output: (màn hình)
  • Gồm t dòng, dòng thứ i là số k lớn nhất có thể tìm được với bộ dữ liệu thứ i.

Sample

Input (bàn phím)
2
5
1 2 3 4 5
5
2 3 4 6 9
Output (màn hình)
2
4
Note
  • Ở bộ dữ liệu đầu tiên, (2, 4) là dãy đẹp dài nhất có thể tìm được.
  • Ở bộ dữ liệu thứ hai, (2, 4, 6, 9) là dãy đẹp dài nhất có thể tìm được.

TLEOJ [x QTOJ] Contest #13 - F - Tìm n

haiender288

Cho hai số nguyên k,p, tìm các số nguyên dương n thỏa mãn:

  • k<n\leq 10^p
  • 2^n chia hết cho n
  • 2^n-1 chia hết cho n-1
  • 2^n-2 chia hết cho n-2
  • ...
  • 2^n-k chia hết cho n-k

Input và Output

Input (bàn phím)

  • Dòng đầu tiên gồm hai số nguyên p,k (1\leq p\leq 15000, 0\leq k\leq 100).

Output (màn hình)

  • Dòng đầu tiên in ra một số nguyên m là số số n thỏa mãn.
  • m dòng tiếp theo in ra m số nguyên là các số n thỏa mãn theo thứ tự tăng dần. Dữ liệu đầu vào đảm bảo tổng các chữ số của n không vượt quá 2\times 10^6.

Sample

Input (bàn phím)

2 0

Output (màn hình)

7
1
2
4
8
16
32
64

TLEOJ [x QTOJ] Contest #13 - E - Hai lần trung vị

Sunlight

Bạn được cho một dãy a_1, a_2, ..., a_n. Xét b là dãy gồm các trung vị của các đoạn con liên tiếp của a, hãy tính trung vị của b.

Nhắc lại:

  • Trung vị của một dãy x_1, x_2, ..., x_n đã được sắp xếp là x_{[\frac{n + 1}{2}]}, với [i] là số nguyên lớn nhất không lớn hơn i.
  • Một đoạn con liên tiếp của một dãy y_1, y_2, ..., y_n là một dãy a_l, a_{l + 1}, ..., a_r với 1 \le l \le r \le n.

Input và Output

Input (bàn phím)
  • Dòng đầu tiên gồm một số nguyên dương n là số lượng phần tử (1 \le n \le 10^6).
  • Dòng thứ hai gồm n số nguyên dương a_1, a_2, ..., a_n (1 \le a_i \le 10^9).
Output (màn hình)
  • In ra trung vị của dãy b
Sample 1
Input (bàn phím)
4
1 2 3 4
Output (màn hình)
2
Note
  • Dãy (1), (2), (3), (4) có trung vị lần lượt là 1, 2, 3, 4.
  • Dãy (1, 2), (2, 3), (3, 4) có trung vị lần lượt là 1, 2, 3.
  • Dãy (1, 2, 3), (2, 3, 4) có trung vị lần lượt là 2, 3.
  • Dãy (1, 2, 3, 4) có trung vị là 2.
  • Vậy dãy b=(1,2,3,4,1,2,3,2,3,2) có trung vị là 2.
Sample 2
Input (bàn phím)
4 
1 1 2 2
Output (màn hình)
1
Sample 3
Input (bàn phím)
4 
4 3 2 1
Output (màn hình)
2

TLEOJ [x QTOJ] Contest #13 - D - Chuyển đổi hệ số

haiender288

Một dãy số a_0,a_1,...,a_k được gọi là biểu diễn hệ số b của số nguyên không âm x nếu 0\leq a_i<b với mọi 0\leq i\leq k, a_k>0 và a_0\times b^0 + a_1\times b^1 + a_2\times b^2 + ... + a_k\times b^k = x.

Cho một dãy số a_0,a_1,...,a_n là biểu diễn hệ số b_1 của số x. Hãy tìm dãy số là biểu diễn hệ số b_2 của x.

Input và Output

Input (bàn phím)

  • Dòng đầu tiên gồm ba số nguyên dương n,b_1,b_2 (1\leq n\leq 2000, 2\leq b_1, b_2\leq 10^9).
  • Dòng thứ hai gồm n số nguyên a_0,a_1,...,a_n (0\leq a_i< b_1, a_n>0).

Output (màn hình)

  • In ra k số nguyên không âm c_0,c_1,...,c_k là biểu diễn hệ số b_2 của x.

Sample

Input (bàn phím)

5 10 2
7 2 7 9 1

Output (màn hình)

1 1 1 1 0 0 0 0 1 0 1 1 0 0 1
Note
  • x_{10}=19727, x_2=100110100001111.

TLEOJ [x QTOJ] Contest #13 - C - Tích chính phương

Sunlight

Cho một số nguyên dương n. Đếm số lượng cặp số nguyên dương (a, b) sao cho 1 \le a < b \le n và a \times b là số chính phương.

Input và Output

Input: (bàn phím)
  • Một dòng duy nhất gồm một số nguyên dương n (n \le 10^{10}).
Output: (màn hình)
  • Gồm một dòng là số cặp tìm được. Dữ liệu đầu vào đảm bảo kết quả không vượt quá 2^{60}.

Sample

Input (bàn phím)
10
Output (màn hình)
4
Note
  • Các cặp số thỏa mãn là: (1, 4), (1, 9), (4, 9), (2, 8).

TLEOJ [x QTOJ] Contest #13 - B - Sắp xếp

Sunlight, icebearlovecode

Cho dãy số A có n phần tử, phần tử thứ i có giá trị là a_i.

Bạn có thể thực hiện hai thao tác sau:

  • Chọn 1 vị trí i (1\le i\le n) và chuyển a_i về đầu dãy và dồn các phần tử phía sau lên trước. (i.e. xoay vòng dãy từ a_1 đến a_i theo chiều hướng về phía cuối dãy, sau thao tác dãy sẽ trở thành a_i, a_1, a_2, ..., a_{i - 1}, a_{i + 1}, a_{i + 2}, ..., a_n)
  • Chọn 1 vị trí i (1\le i\le n) và chuyển a_i về cuối dãy và dồn các phần tử phía sau lên trước. (i.e. xoay vòng dãy từ a_i đến a_n theo chiều hướng về phía đầu dãy, sau thao tác dãy sẽ trở thành a_1, a_2, ..., a_{i - 1}, a_{i + 1}, a_{i + 2}, ..., a_n, a_i)

Yêu cầu: Tìm số thao tác nhỏ nhất tạo ra một dãy mà 1\le i\le n-1 thì a_i \ge a_{i + 1} (i.e. dãy thu được là dãy không tăng).

Input và Output

Input (bàn phím)
  • Dòng đầu tiên gồm một số nguyên dương n là số lượng phần tử (1 \le n \le 3 \times 10^5).
  • Dòng thứ hai gồm n số nguyên dương a_1, a_2, ..., a_n (1 \le a_i \le 3 \times 10^5).
Output (màn hình)
  • In ra số thao tác nhỏ nhất.
Sample 1
Input (bàn phím)
4 
2 6 1 4
Output (màn hình)
2
Note
  • Chuyển phần tử thứ 1 về cuối dãy được A = \{6, 1, 4, 2\}.
  • Chuyển phần tử thứ 2 về cuối dãy được A = \{6, 4, 2, 1\} (thỏa mãn).
Sample 2
Input (bàn phím)
4 
3 1 2 4
Output (màn hình)
2
Sample 3
Input (bàn phím)
4 
1 1 2 2
Output (màn hình)
2

TLEOJ [x QTOJ] Contest #13 - A - Tách số

giaminh2211

giaminh2211 give up on CP chán quá nên ra bài mời mấy đứa bạn vừa bắt đầu học CP làm. Cho số n, có thể phân tích n ra làm tổng 3 số nguyên dương chẵn được không. Nếu có in ra 1, nếu không in ra 0

Input và Output

Input: (bàn phím)
  • Dòng đầu tiên gồm một số nguyên dương t - số bộ dữ liệu cần xử lý. (t \le 10^5).
  • t dòng tiếp theo, mỗi dòng gồm một số nguyên dương n (n \le 10^{18}).
Output: (màn hình)
  • Gồm t dòng, dòng thứ i là kết quả của bộ dữ liệu thứ i.

Sample

Input (bàn phím)
3
9
10
11
Output (màn hình)
0
1
0
Note
  • Trường hợp 2 phân tích ra 4+4+2=10

TLEOJ Contest #12 - 10 và 01

huyhau6a2 hiện đang có một chương trình tên là binary.cpp. Trong code của cậu có thực hiện các bước như sau:

  • Bước 1: Nhập vào chương trình một xâu nhị phân s (xâu nhị phân là xâu chỉ bao gồm các ký tự 0 và 1). Thực hiện bước 2.
  • Bước 2: Kiểm tra xem trong xâu s có xuất hiện đoạn ký tự 10 hay không, nếu có thì thực hiện bước 3, còn không thì kết thúc chương trình.
  • Bước 3: Thay đồng loạt tất cả các đoạn ký tự 10 xuất hiện trong xâu s thành 01. Quay lại bước 2.

Ví dụ: Với xâu s=1100 thì chương trình sẽ thực hiện như sau:

  • Kiểm tra thấy có đoạn ký tự 10 xuất hiện, chuyển qua bước 3.
  • Thay tất cả đoạn ký tự 10 thành 01. Xâu s trở thành 1010. Quay lại bước 2.
  • Kiểm tra thấy có đoạn ký tự 10 xuất hiện, chuyển qua bước 3.
  • Thay tất cả đoạn ký tự 10 thành 01. Xâu s trở thành 0101. Quay lại bước 2.
  • Kiểm tra thấy có đoạn ký tự 10 xuất hiện, chuyển qua bước 3.
  • Thay tất cả đoạn ký tự 10 thành 01. Xâu s trở thành 0011. Quay lại bước 2.
  • Kiểm tra thấy không có đoạn ký tự 10 xuất hiện, kết thúc chương trình.
    Vậy với xâu s=1010 thì chương trình sẽ thực hiện bước 3 hai lần.

Với chương trình mà huyhau6a2 viết, rõ ràng nó sẽ kết thúc sau một vài lần thực hiện bước 3, tức là nó không chạy vô hạn. Nhiệm vụ của bạn là xác định xem với xâu s mà huyhau6a2 chuẩn bị nhập vào cần thực hiện bước 3 bao nhiêu lần.

Input

  • Dòng đầu gồm một 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 xâu s là xâu mà huyhau6a2 sẽ nhập vào chương trình (1\le |s|\le 2\times 10^5).
  • Dữ liệu đảm bảo tổng độ dài của các xâu s trong tất cả testcase không quá 2\times 10^5.

Output

  • Với mỗi testcase, in ra duy nhất một giá trị là số lần thực hiện bước 3 trong một dòng.

Sample

Sample Input 1

4
1100
00011
1011001
1011001110

Sample Output 1

3
0
4
6

Notes

  • Testcase thứ nhất đã được giải thích ở phần statement.
  • Trong testcase thứ ba, xâu s sau các thao tác như sau: 1011001\rightarrow0110101\rightarrow0101011\rightarrow0010111\rightarrow0001111.
  • Trong testcase thứ tư, xâu s sau các thao tác như sau: 1011001110\rightarrow0110101101\rightarrow0101011011\rightarrow0010110111\rightarrow0001101111\rightarrow0001011111\rightarrow0000111111

Bedan Contest #03 - C - Đường tròn

flo

This is a geometry problem since I love geometry so much.

Cho n điểm phân biệt trên mặt phẳng tọa độ Descartes, điểm thứ i có tọa độ là (x_i, y_i). Với mỗi cặp điểm, vẽ một đường tròn có đường kính là đoạn thẳng nối cặp điểm đó lại với nhau. Khi đó, ta sẽ có tổng cộng \frac{n\times (n-1)}{2} đường tròn khác nhau.

Nhiệm vụ của bạn là với mỗi điểm trong n điểm trên, bạn hãy xác định số lượng đường tròn mà nó nằm trên với điều kiện nó không trùng với đầu mút của đường kính của những đường tròn đó. Chúc bạn may mắn nhé!

Input, Output and Scoring

Input
  • Số nguyên dương n (1 \le n \le 2000).
  • n dòng tiếp theo, dòng thứ i chứa tọa độ điểm thứ i là (x_i, y_i) (|x_i|, |y_i| \le 10^9).
Output
  • In ra n số nguyên không âm, số thứ i là số lượng đường tròn điểm thứ i nằm trên mà điểm đó không trùng với đầu mút của đường kính của những đường tròn đó.
Scoring
  • Subtask 1 (20\%): 1 \le n \le 200.
  • Subtask 2 (80\%): Không giới hạn gì thêm.

Test 1

Input
4
3 1
10 1
5 2
3 6
Output
1 0 1 0
Note
  • Điểm (3, 1) nằm trên đường tròn có đường kính là đoạn thẳng nối 2 điểm (3, 6) và (10, 1).
  • Điểm (5, 2) nằm trên đường tròn có đường kính là đoạn thẳng nối 2 điểm (3, 1) và (3, 6).

Test 2

Input
4
1 1
1 2
2 1
2 2
Output
1 1 1 1
Note
  • Điểm (1, 1) và (2, 2) nằm trên đường tròn có đường kính là đoạn thẳng nối 2 điểm (1, 2) và (2, 1).
  • Điểm (1, 2) và (2, 1) nằm trên đường tròn có đường kính là đoạn thẳng nối 2 điểm (1, 1) và (2, 2).

Bedan Contest #03 - B - Hộp kẹo

flo

Một năm nữa lại trôi qua và một năm mới đang đến gần với chúng ta. Đối với flo, năm vừa qua là một năm không có gì là may mắn, khá thăng trầm nhưng cũng để lại trong tâm trí cậu nhiều kỉ niệm khó nhớ. Một trong số đó có lẽ là những ngày ôn tập chuẩn bị cho kì thi cuối kì I của flo diễn ra trong 2 tuần. Trong thời gian đó, cậu đã phải chịu đựng nhiều đau đớn và trải qua nhiều khó khăn. Nhưng rồi kì thi ấy cũng trôi qua, kết quả mà flo đạt được đã vượt xa mong đợi của cậu. Vì thế mà flo vô cùng vui bởi kết quả cho những đau đớn mà cậu trải qua lại vô cùng xứng đáng.

Năm mới đã đến và kết quả thi cử của flo rất tốt nên cậu đã được mẹ cậu thưởng n hộp kẹo với vô vàng loại kẹo khác nhau. Những hộp kẹo này còn có cho mình 1 độ ngon nhất định khi hộp thứ i có độ ngon là a_i. Tuy nhiên nếu ăn hết bây giờ thì sẽ quá lãng phí nên flo quyết định ăn n hộp kẹo này trong những ngày tới. Mỗi ngày, cậu sẽ chọn 1 số nguyên dương m bất kỳ và ăn m viên kẹo đầu tiên sao cho độ phong phú của m hộp kẹo đó giao động từ l đến r. Đối với flo, độ phong phú của một dãy hộp kẹo là số lượng độ ngon khác nhau của các hộp kẹo đó. Khi ăn như vậy sẽ giúp cậu có thể cảm nhận được sự hòa quyện của các loại kẹo với nhau, từ đó tạo nên một vị ngon khó cưỡng.

Vì là một con người coi trọng việc tiết kiệm, flo muốn ăn theo cách trên nhưng cậu phải ăn hết kẹo mà không chưa lại hộp kẹo nào. Tuy nhiên do số lượng hộp kẹo mà mẹ của flo tặng cho cậu quá lớn làm cho cậu không biết phải phân chia để ăn như thế nào mới có thể thỏa mãn được cậu. Bạn hãy tính giúp flo nhé.

Input, Output and Scoring

Input
  • 3 số nguyên dương n, l, r (1 \le l \le r \le n \le 10^5).
  • Dãy a gồm n phần tử a_1, a_2, ..., a_n (1 \le a_i \le 10^9).
Output
  • In ra kết quả sau khi chia lấy dư cho 1234567891.
Scoring
  • Subtask 1 (10\%): 1 \le n \le 10.
  • Subtask 2 (20\%): 1 \le n \le 10^2.
  • Subtask 3 (30\%): 1 \le n \le 10^3.
  • Subtask 4 (40\%): Không giới hạn gì thêm.

Test 1

Input
3 1 2
2 3 2
Output
4
Note
  • Cách ăn kẹo mà thỏa mãn được nhu cầu của flo như sau.
    • Ngày đầu tiên, flo sẽ ăn 2 hộp kẹo đầu tiên có độ phong phú là 2. Khi đó, cậu chỉ còn 1 hộp kẹo là [2]. Đến ngày thứ hai, flo sẽ ăn 1 hộp kẹo đầu tiên có độ phong phú là 1. Khi đó, flo sẽ ăn hết kẹo.
    • Ngày đầu tiên, flo sẽ ăn 1 hộp kẹo đầu tiên có độ phong phú là 1. Khi đó, cậu chỉ còn 2 hộp kẹo là [3, 2]. Đến ngày thứ hai, flo sẽ ăn 2 hộp kẹo đầu tiên có độ phong phú là 2. Khi đó, flo sẽ ăn hết kẹo.
    • Mỗi ngày flo có thể ăn 1 hộp kẹo với độ phong phú là 1. Sau 3 ngày, flo sẽ ăn hết kẹo.
    • Ngày đầu tiên, flo sẽ ăn hết cả 3 hộp kẹo có độ phong phú là 3.
  • Vì vậy, flo có tổng cộng 4 cách ăn kẹo khác nhau thỏa mãn cậu.

Test 2

Input
6 2 4
1 2 1 3 2 2
Output
3
Note
  • Cách ăn kẹo mà thỏa mãn được nhu cầu của flo như sau.
    • Ngày đầu tiên, flo sẽ ăn 2 hộp kẹo đầu tiên có độ phong phú là 2. Khi đó, cậu chỉ còn 4 hộp kẹo là [1, 3, 2, 2]. Đến ngày thứ hai, flo sẽ ăn 4 hộp kẹo đầu tiên có độ phong phú là 3. Khi đó, flo sẽ ăn hết kẹo.
    • Ngày đầu tiên, flo sẽ ăn 3 hộp kẹo đầu tiên có độ phong phú là 2. Khi đó, cậu chỉ còn 3 hộp kẹo là [3, 2, 2]. Đến ngày thứ hai, flo sẽ ăn 3 hộp kẹo đầu tiên có độ phong phú là 2. Khi đó, flo sẽ ăn hết kẹo.
    • Ngày đầu tiên, flo sẽ ăn hết cả 6 hộp kẹo có độ phong phú là 3.
  • Vì vậy, flo có tổng cộng 3 cách ăn kẹo khác nhau thỏa mãn cậu.

Bedan Contest #03 - A - Bài tập

flo

Một năm mới sắp đến nên flo quyết định chuẩn bị bài cho Bedan Contest #03 như là một món quà nho nhỏ tới những thành viên của TLEoj. Chỉ còn vài ngày nữa là đã đến ngày diễn ra nhưng flo vẫn chưa có ý tưởng nào. Một hôm, khi đọc sách về toán học thì cậu đã thấy được một vài công thức tính tổng các dãy số liên tiếp phổ biển như sau.

  • \sum_{i = 1}^n i = \frac{n\times (n+1)}{2}.
  • \sum_{i = 1}^n i^2 = \frac{n\times (n+1)\times (2\times n+1)}{6}.
  • \sum_{i = 1}^n i^3 = (\frac{n\times (n+1)}{2})^2.
  • ...

flo nhận ra các công thức trên đều tính tổng dãy số có số mũ là số nguyên. Bỗng cậu thắc mắc rằng có cách nào để tính nhanh \sum_{i = 1}^n \lfloor \sqrt{i} \rfloor hay không. Vì đang bí ý tưởng ra bài cho Bedan Contest #03 nên flo quyết định đưa bài này vào để mời các bạn giải thử. Bạn hãy thử sức với bài này nhé.

Nếu như bạn vẫn không biết \lfloor n \rfloor là gì thì nó là n được làm tròn xuống, như \lfloor 6.9 \rfloor = 6.

Input, Output and Scoring

Input
  • Số nguyên dương t (1 \le t \le 10^5).
  • t dòng tiếp theo, mỗi dòng gồm 1 số nguyên dương n (1 \le n \le 10^{18}).
Output
  • Với mỗi dòng, hãy in ra kết quả thỏa mãn.
Scoring
  • Subtask 1 (20\%): 1 \le n \le 10^6.
  • Subtask 2 (30\%): 1 \le n \le 10^{12}.
  • Subtask 3 (50\%): Không giới hạn gì thêm.

Test

Input
3
4
6
9
Output
5
9
16
Note
  • \lfloor \sqrt{1} \rfloor + \lfloor \sqrt{2} \rfloor + \lfloor \sqrt{3} \rfloor + \lfloor \sqrt{4} \rfloor = 1 + 1 + 1 + 2 = 5.
  • \lfloor \sqrt{1} \rfloor + \lfloor \sqrt{2} \rfloor + \lfloor \sqrt{3} \rfloor + \lfloor \sqrt{4} \rfloor + \lfloor \sqrt{5} \rfloor + \lfloor \sqrt{6} \rfloor = 1 + 1 + 1 + 2 + 2 + 2 = 9.
  • \lfloor \sqrt{1} \rfloor + \lfloor \sqrt{2} \rfloor + \lfloor \sqrt{3} \rfloor + \lfloor \sqrt{4} \rfloor + \lfloor \sqrt{5} \rfloor + \lfloor \sqrt{6} \rfloor + \lfloor \sqrt{7} \rfloor + \lfloor \sqrt{8} \rfloor + \lfloor \sqrt{9} \rfloor = 1 + 1 + 1 + 2 + 2 + 2 + 2 + 2 + 3 = 16.