Tam giác (OLP MT&TN 2022 CT)

Small

Thời gian rảnh Thuận thường hướng dẫn các em nhỏ học lập trình, dưới đây là một bài toán rèn luyện kĩ năng cũng như tư duy lập trình.

Cho một dãy số nguyên dương \(a_1, a_2, ..., a_n (1 < a_i \le 10^9)\) và số nguyên dương \(t (1 \le t \le 3)\). Gọi \(s_1, s_2, s_3\) tương ứng là số bộ chỉ số \(1 \le i < j < k \le n\)\(a_i, a_j, a_k\) là ba cạnh của một tam giác nhọn, tam giác vuông, tam giác tù. Hãy tính giá trị \(s_t\).

Input

Vào từ thiết bị vào chuẩn có khuôn dạng:

  • Dòng đầu chứa hai số nguyên dương \(n, t\);
  • Dòng thứ hai gồm \(n\) số nguyên dương \(a_1, a_2, ..., a_n\).

Output

  • Ghi ra thiết bị ra chuẩn một dòng chứa một số nguyên là giá trị \(s_t\) tính được.

Scoring

  • Subtask #1 (\(30\%\) số điểm): \(n = 3\) và 10% cho từng giá trị của \(t\);
  • Subtask #2 (\(30\%\) số điểm): \(n \le 300\) và 10% cho từng giá trị của \(t\);
  • Subtask #3 (\(40\%\) số điểm): \(n \le 3000\)

Example

Test 1

Input
3 2
3 4 5
Output
1

Test 2

Input
4 1
3 4 5 6
Output
1
...Xem thêm

Cân đĩa (THTB Vòng Sơ loại)

dong3d

Cho một cân hai đĩa và \(n\) quả cân có khối lượng đôi một khác nhau \(w_1, w_2, . . , w_n\). Tiến hành đặt lần
lượt từng quả cân lên một trong hai đĩa của cân và đảm bảo rằng tổng khối lượng bên trái luôn nhỏ
hơn hoặc bằng tổng khối lượng bên phải.

Yêu cầu: Cho \(n\) quả cân có khối lượng \(w_1, w_2, . . , w_n\), hãy đếm số cách xếp \(n\) quả cân thỏa mãn.

Hai cách được gọi là khác nhau nếu thứ tự xếp các quả cân khác nhau hoặc tồn tại một quả cân nằm
ở đĩa khác nhau.

Input

Vào từ thiết bị vào chuẩn có khuôn dạng:

  • Dòng 1: chứa số nguyên \(n\);
  • Dòng 2: chứa \(n\) số nguyên dương \(w_1, w_2, . . , w_n\).

Output

  • Ghi ra thiết bị ra chuẩn một dòng chứa một số nguyên là số cách xếp \(n\) quả cân lên đĩa.

Scoring

  • Subtask \(1\) (\(40\%\) số điểm): \(n \le 7\)\(w_i \le 1000 (1 \le i \le n)\);
  • Subtask \(2\) (\(40\%\) số điểm): \(n \le 14\)\(w_i \le 1000 (1 \le i \le n)\);
  • Subtask \(3\) (\(20\%\) số điểm): \(n \le 28\)\(w_i = 2^{i−1} (1 \le i \le n)\).

Example

Test 1

Input
2
1 2
Output
3
Note

Ở ví dụ bên trái, có 8 cách sắp xếp các quả cân lên hai bàn cân như sau:

  1. Đặt quả cân 1 bên trái rồi đặt quả cân 2 bên trái;
  2. Đặt quả cân 1 bên trái rồi đặt quả cân 2 bên phải;
  3. Đặt quả cân 1 bên phải rồi đặt quả cân 2 bên trái;
  4. Đặt quả cân 1 bên phải rồi đặt quả cân 2 bên phải;
  5. Đặt quả cân 2 bên trái rồi đặt quả cân 1 bên trái;
  6. Đặt quả cân 2 bên trái rồi đặt quả cân 1 bên phải;
  7. Đặt quả cân 2 bên phải rồi đặt quả cân 1 bên trái;
  8. Đặt quả cân 2 bên phải rồi đặt quả cân 1 bên phải.
    Tuy nhiên chỉ có 3 cách (cách 4, 7, 😎 là đảm bảo trong toàn bộ quá trình sắp xếp các quả cân,
    đĩa bên trái luôn nhỏ hơn hoặc bằng đĩa cân bên phải.

Test 2

Input
3
10 11 12
Output
15
...Xem thêm

KIẾN

kid2201

Sau những giờ làm việc vất vả, ông \(Z\) thường rất thích ngồi ngoài khu vườn trong căn biệt thự nghìn tỉ của mình và ngắm những con kiến, một trong những sinh vật siêng năng, chăm chỉ nhất hành tinh.

Sau một thời gian quan sát thì ông nhận ra rằng đường về nhà của các bạn kiến là một đồ thị dạng cây và những con kiến xuất phát từ các nút lá, sau mỗi giây chúng sẽ di chuyển lên nút cha của nút chúng đang đứng. Trong một giây mỗi nút chỉ chứa duy nhất một chú kiến, trừ nút \(1\) (tổ của những con kiến). Ông \(Z\) đang muốn tính toán được thời gian mà tất cả chú kiến về được tổ của chúng. Các bạn hãy giúp ông \(Z\).

Input

  • Dòng đầu tiên gồm \(1\) nguyên \(N\) (\(2 \le N \le 5 \times 10^5\)) - số nút con trên cây.

  • \(N – 1\) dòng tiếp theo mỗi dòng gồm \(2\) số \(u, v\) (\(1 \le u, v \le n\)) - thể hiện có đường đi trực tiếp giữa \(2\) nút \(u, v\).

Output

  • Gồm duy nhất một số là thời gian để tất cả chú kiến về được tổ của chúng.

Example

Test 1

Input
12  
1 2
1 3
1 4
2 5
2 6
3 7   
3 8
3 9
8 10
8 11
8 12
Output
6
...Xem thêm

minict05

corona

Cho một binary string (xâu nhị phân) \(s\) chỉ bao gồm các kí tự \('0'\)\('1'\).

Một phép biến đổi được định nghĩa như sau:

  • Chọn một kí tự trong \(string\) \(s\) và đảo kí tự đó, tức là \('0'\) đảo thành \('1'\), còn \('1'\) đảo thành \('0'\).

Một string được gọi là \(good\) nếu như nó không chứa bất kì đoạn con (không cần liên tục) nào bằng \("010"\) hoặc \("101"\). Ví dụ, \(s="1001"\) chứa \("101"\) là đoạn con nên \("1001"\) \(không\) \(phải\)\(good\) \(string\), trong khi \(s="1000"\)\(good\) \(string\).

Một đoạn con không liên tục của một string s là một string thu được bằng cách xóa đi một số kí tự (có thể không xóa) của \(s\).

Yêu cầu : Hãy cho biết số lần biến đổi tối thiểu để làm cho \(string\) \(s\) trở thành \(good\) \(string\).

Input

  • Dòng đầu in ra một số nguyên là \(T (1 \leq T \leq 100)\) - số lượng bộ test.
  • \(T\) dòng tiếp theo mỗi dòng chứa một binary \(string\) \(s\) \((1 \leq s.size() \leq 1000)\).

Output

  • Mỗi bộ test in trên một dòng là một số nguyên - số lần biến đổi tối thiểu để làm cho string s trở thành good.

Example

Test 1

Input
3
001
110
01011001 
Output
0
0
3
...Xem thêm