LQDOJ Cup 2025 - Round #6

Bộ đề bài

# Bài tập Điểm Thời gian: Giới hạn bộ nhớ
1 LQDOJ Cup 2025 - Round #6 - Trick or Treat 100 (p) 1.0s 512M
2 LQDOJ Cup 2025 - Round #6 - Liên minh tối thượng 100 (p) 3.0s 512M
3 LQDOJ Cup 2025 - Round #6 - Đi tìm ẩn số 100 (p) 1.0s 512M
4 LQDOJ Cup 2025 - Round #6 - Tô màu đồ thị 100 (p) 2.5s 1G
5 LQDOJ Cup 2025 - Round #6 - Chụp ảnh trẻ trâu 100 (p) 3.5s 512M

1. LQDOJ Cup 2025 - Round #6 - Trick or Treat

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: trortr.inp Output: trortr.out

Đêm Halloween, có \(n\) ngôi nhà trên một khu phố tham gia vào một "cuộc chiến" phát kẹo. Các ngôi nhà nằm liên tiếp nhau trên một con đường và được đánh số từ \(1\) đến \(n\) theo thứ tự từ trái sang phải. Mục tiêu của mỗi nhà là phải "thoát" khỏi đêm Halloween với một số lượng kẹo nhất định.

Hiện tại, nhà thứ \(i\) có \(a_i\) giỏ kẹo. Theo quy định của khu phố, để được coi là "thành công", nhà thứ \(i\) phải kết thúc đêm với đúng \(b_i\) giỏ kẹo.

Trong suốt đêm, ba sự kiện có thể xảy ra:

  • Treat:
    Có một dịch vụ giao kẹo khẩn cấp. Bạn có thể gọi họ mang \(1\) giỏ kẹo mới đến nhà thứ \(i\). Chi phí cho mỗi giỏ kẹo đặt thêm này là \(X\).
  • Trick:
    Cứ thỉnh thoảng, một nhóm nhóc tinh nghịch (tricksters) lại chạy qua. Nếu chúng nhắm vào nhà thứ \(i\), chúng sẽ "xử lý" (làm hỏng, làm đổ, ném lung tung) 1 giỏ kẹo của bạn. Bạn không thể dùng giỏ kẹo đó nữa, và tốn chi phí \(Y\) để dọn dẹp mớ hỗn độn đó.
  • Share:
    Các nhà hàng xóm có thể giúp đỡ lẫn nhau. Nhà thứ \(i\) có thể bí mật mang 1 giỏ kẹo của mình chạy sang đưa cho nhà \(j\). Vì phải chạy qua lại trong đêm tối, chi phí công sức để di chuyển 1 giỏ kẹo từ nhà thứ \(i\) sang nhà thứ \(j\) là \(Z \cdot |i - j|\).

Hãy tính tổng chi phí nhỏ nhất để tất cả các nhà đều thành công.

Dữ liệu

Vào từ file văn bản trortr.inp:

  • Dòng đầu tiên chứa một số nguyên \(\theta\) là số bộ dữ liệu.
  • Tiếp theo là các bộ dữ liệu, mỗi bộ được mô tả theo khuôn dạng sau:
    • Dòng đầu tiên là một dòng trống.
    • Dòng thứ hai gồm bốn số nguyên \(n\), \(X\), \(Y\), \(Z\) \((1 \leq n \leq 2 \cdot 10^5, 1 \leq X, Y, Z \leq 10^6)\).
    • Dòng thứ ba gồm \(n\) số nguyên \(a_1, a_2, \ldots, a_n\) \((1 \leq a_i \leq 10^7)\).
    • Dòng thứ tư gồm \(n\) số nguyên \(b_1, b_2, \ldots, b_n\) \((1 \leq b_i \leq 10^7)\).

Gọi:

  • \(\Sigma_n\) là tổng giá trị của \(n\) trong các bộ dữ liệu;
  • \(\Sigma_a\) là tổng giá trị của \(a_1 + a_2 + \ldots + a_n\) trong các bộ dữ liệu;
  • \(\Sigma_b\) là tổng giá trị của \(b_1 + b_2 + \ldots + b_n\) trong các bộ dữ liệu.

Dữ liệu đảm bảo \(\Sigma_n \leq 10^6\).

Kết quả

Ghi ra file văn bản trortr.out:

  • Với mỗi bộ dữ liệu, in ra tổng chi phí nhỏ nhất trên một dòng.

Ràng buộc

  • Subtask \(1\) (\(11\) điểm): \(X + Y \leq Z\).
  • Subtask \(2\) (\(17\) điểm): \(X = Y = Z\) và \(a_i, b_i \leq 20\).
  • Subtask \(3\) (\(19\) điểm): \(n \leq 80\) và \(\Sigma_n \leq 400\).
  • Subtask \(4\) (\(19\) điểm):
    • \(a_1 + a_2 + \ldots + a_n \leq 3000\) và \(\Sigma_a \leq 15000\).
    • \(b_1 + b_2 + \ldots + b_n \leq 3000\) và \(\Sigma_b \leq 15000\).
  • Subtask \(5\) (\(17\) điểm): \(n \leq 3000\) và \(S_n \leq 15000\).
  • Subtask \(6\) (\(17\) điểm): Không có ràng buộc gì thêm.

Ví dụ

Ví dụ 1
trortr.inp
2

2 6 7 15
3 13
11 24

2 2 2 7
1 9
9 7
trortr.out
114
20

2. LQDOJ Cup 2025 - Round #6 - Liên minh tối thượng

Điểm: 100 (p) Thời gian: 3.0s Bộ nhớ: 512M Input: league.inp Output: league.out

Atlantis không chỉ là một thành phố, nó là một nền văn minh vĩ đại. Dù đã bị nhấn chìm dưới đại dương, nó chưa từng bị quên lãng trong ký ức của loài người. Dưới độ sâu hàng ngàn km, hòn đảo này tỏa sáng rực rỡ như một viên ngọc lam khổng lồ được tạc từ pha lê và hợp kim không tên. Atlantis nổi tiếng với những tòa tháp cao đồ sộ được thiết kế theo trăm ngàn hình thù kỳ ảo thách thức mọi giới hạn vật lý. Toàn bộ thành phố được bao bọc trong một mái vòm năng lượng plasma trong suốt, tạo ra một bầu khí quyển nhân tạo hoàn hảo, nơi những sinh vật biển kỳ dị nhất cũng phải nép mình trước sự vĩ đại của con người.

Nhưng nó chẳng là gì so với vương quốc Uchiha -- biểu tượng của một sức mạnh quân sự lỗi lạc (lỗi thời và lạc hậu), một vùng đất mà mọi người chung sống với nhau bằng những cái liếc mắt đầy thân thiện. Người dân trong vương quốc đều mắc một căn bệnh kỳ lạ, mắt của họ đỏ như cà chua mỗi khi tới tuổi dậy thì. Nhưng cũng nhờ những đôi "hắc nhãn" ấy mà mỗi người đều có nhũng năng lực kỳ bí. Để tránh xung đột sức mạnh, quốc vương đã chia đất nước thành các khu vực, mỗi khu vực là một ngôi làng -- nơi chung sống của một nhóm người sở hữu cùng một loại năng lực. Bản đồ vương quốc Uchiha có dạng hình chữ nhật gồm \(m\) hàng và \(n\) cột mà mỗi ô là một ngôi làng. Các hàng được đánh số từ \(1\) đến \(m\) và các cột được đánh số từ \(1\) đến \(n\). Ngôi làng ở hàng \(i\) và cột \(j\) được ký hiệu là \((i, j)\). Người dân của ngôi làng này có chỉ số sức mạnh là \(A_{i, j}\). Để thuận tiện cho việc đi lại, quốc vương đã cho xây dựng một số con đường. Giữa hai ngôi làng \((x, y)\) và \((u, v)\) có một con đường kết nối trực tiếp khi và chỉ khi \(|x - u| + |y - v| = 1\).

Hôm nay là một ngày thiêng liêng của toàn bộ người dân Uchiha, ngày kỷ niệm \(30^{30}\) vương quốc phồn thịnh này ra đời. Để thị uy với các vương quốc khác, quốc vương đã chọn ra một số ngôi làng tham gia đội diễu binh diễu hành trong lễ kỷ niệm. Các ngôi làng được chọn cần thỏa mãn các điều kiện sau:

  • Tập hợp các ngôi làng được chọn tạo thành một khu vực liên thông.
  • Tồn tại ít nhất hai ngôi làng có chỉ số sức mạnh khác nhau.
  • Nếu ta liệt kê các giá trị phân biệt của chỉ số sức mạnh của những ngôi làng được chọn và sắp xếp chúng theo thứ tự tăng dần, ta được một cấp số nhân có công bội là số nguyên dương không quá \(30\).

Một tập hợp \(S\) các ngôi làng được gọi là khu vực liên thông khi và chỉ khi từ mọi cặp ngôi làng \((x_1, y_1)\) và \((x_2, y_2)\) thuộc \(S\), tồn tại cách di chuyển giữa hai ngôi làng này mà chỉ đi qua các ngôi làng thuộc \(S\).

Một dãy số \(a_1, a_2, \ldots, a_k\) được gọi là cấp số nhân khi và chỉ khi tồn tại số \(q\) sao cho \(a_i = q \cdot a_{i - 1}\) với mọi \(1 \leq i < k\).

Để buổi lễ diễu binh được thật sự hoành tráng, quốc vương muốn số ngôi làng được lựa chọn là càng lớn càng tốt. Các bạn hãy giúp quốc vương tìm số ngôi làng tối đa có thể chọn nhé.

Dữ liệu

Vào từ file văn bản league.inp:

  • Dòng đầu tiên chứa hai số nguyên \(m\) và \(n\) \((1 \leq m, n \leq 1000)\).
  • Trong \(m\) dòng còn lại, dòng thứ \(i\) chứa \(n\) số nguyên \(A_{i, 1}, A_{i, 2},\cdots, A_{i, n}\) \((1 \le A_{ij} \le 10^{18})\).

Kết quả

Ghi ra file văn bản league.out:

  • In ra một dòng duy nhất là số lượng ngôi làng của liên minh mà quốc vương đã chọn.

Ràng buộc

  • Subtask \(1\) (\(25\) điểm): \(1 \le m, n \le 100\)
  • Subtask \(2\) (\(25\) điểm): \(1 \le m, n \le 500\) và mọi chỉ số sức manh \(A_{i, j}\) đều thỏa mãn tính chất: có đúng một ước nguyên tố và ước nguyên tố này không quá \(100\).
  • Subtask \(3\) (\(50\) điểm): Không có ràng buộc gì thêm.

Ví dụ

Ví dụ 1
league.inp
6 7
1 2 4 9 7 11 1
6 8 16 10 19 19 1
10 8 5 4 2 15 1
13 2 5 6 5 12 1
15 2 4 5 6 11 1
17 19 8 32 8 17 1
league.out
12

Giải thích

Vùng màu đỏ trong bảng thể hiện các ngôi làng được chọn:

3. LQDOJ Cup 2025 - Round #6 - Đi tìm ẩn số

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Đây là bài toán tương tác, thí sinh chỉ có thể giải bằng ngôn ngữ C++.

Bạn đang tham gia trò chơi ``thử thách đoán số''. Để chinh phục giải thưởng độc đắc siêu to khổng lồ, bạn cần tìm ra mật mã của chương trình là một cặp số nguyên dương \((x, y)\). Chương trình cho bạn một manh mối: hai số này thỏa mãn \(1 \leq x, \sqrt[3]{y} \leq 100\) và \(x \leq y\).

Để giúp bạn tìm ra mật mã, MC sẽ cung cấp thêm thông tin. Bạn được phép đưa cho MC một số nguyên \(k\) thỏa mãn \(1 \leq k \leq 10^{18}\). Khi đó, MC sẽ ngay lập tức cho bạn biết có hay không hai số nguyên không âm \(\alpha, \beta\) thỏa mãn \(k = \alpha \cdot x + \beta \cdot y\) (nhưng không cho biết cụ thể hai số \(\alpha, \beta\) nào). Vì tính kiên nhẫn của MC có hạn, bạn chỉ có thể làm điều này không quá \(10^6\) lần.

Cũng có đôi khi, chương trình cố tình gài mật mã là một cặp số bẫy để khiến bạn không thể tìm được. Nếu bạn tinh ý và phát hiện được ra ý đồ này, bạn vẫn nhận được giải độc đắc. Một cặp số \((x, y)\) được gọi là cặp số bẫy khi và chỉ khi tồn tại một cặp số nguyên \((\chi, \psi)\) sao cho:

  • \(1 \leq \chi, \sqrt[3]{\psi} \leq 100\) và \(\chi\leq \psi\)
  • \(x \neq \chi\) hoặc \(y \neq \psi\)
  • Với mọi số nguyên \(k\) thỏa mãn \(1 \leq k \leq 10^{18}\), nếu bạn đưa số \(k\) cho MC, thông tin từ MC là giống nhau trong cả hai kịch bản mật mã là \((x, y)\) và \((\chi, \psi)\).

Số lần bạn lấy thông tin từ MC càng ít, giải thưởng của bạn càng lớn. Hãy tìm ra mật mã với số lần lấy thông tin càng ít càng tốt nhé!

Chi tiết cài đặt

Thí sinh cần cài đặt hàm pair<int, int> play(int subtask_id): Hàm nhận vào tham số subtask_id là số thứ tự của subtask chứa test này. Hàm cần trả về một pair thể hiện mật mã trong đó first là \(x\) và second là \(y\), hoặc trả về \(\{-1, -1\}\) nếu mật mã này là một cặp số bẫy.

Thí sinh được cung cấp thư viện guess.h bên trong có cài đặt sẵn hàm bool check(long long k): Hàm nhận vào một số nguyên \(k\) thỏa mãn \(1 \leq k \leq 10^{18}\) và trả về true khi và chỉ khi tồn tại hai số nguyên không âm \(\alpha, \beta\) sao cho \(k = \alpha \cdot x + \beta \cdot y\).

Mỗi test có không quá \(100\) bộ dữ liệu. Hàm play được gọi một lần cho mỗi bộ dữ liệu.

Lưu ý:

  • Thí sinh cần có dòng lệnh khai báo thư viện #include "guess.h" ở dòng đầu tiên của chương trình.
  • File mã nguồn của thí sinh không được chứa hàm main. Việc viết hàm main có thể gây ra lỗi biên dịch cho bài làm của thí sinh.
  • Thí sinh có thể định nghĩa thêm hàm hoặc khai báo thêm các biến toàn cục nếu cần.
  • Thí sinh không được đọc dữ liệu từ thiết bị vào chuẩn hay bất cứ tệp tin nào, cũng như không được in ra thiết bị ra chuẩn hay bất kì tệp tin nào.
  • Thí sinh sẽ nhận được kết quả chấm là Kết quả sai nếu như tham số truyền vào hàm check không hợp lệ, hàm check được gọi nhiều hơn \(10^6\) lần trong một bộ dữ liệu, hay kết quả trả về của hàm play không chính xác.
  • Vui lòng tham khảo chương trình mẫu tại đây, thư viện mẫu tại đây và xem hướng dẫn về các bài toán tương tác tại video này của GSPVHCUTE

Ràng buộc

Bộ test được chia làm năm subtask như sau:

  • Subtask \(1\) (\(20\) điểm): \(x = 2\)
  • Subtask \(2\) (\(15\) điểm): \(\sqrt[3]{y} = 100\)
  • Subtask \(3\) (\(15\) điểm): \(\sqrt[1]{y} \leq 100\)
  • Subtask \(4\) (\(20\) điểm): \(\sqrt[2]{y} \leq 100\)
  • Subtask \(5\) (\(30\) điểm): Không có ràng buộc gì thêm.

Với mỗi test:

  • Nếu bạn giải sai ít nhất một bộ dữ liệu, bao gồm nhưng không hạn chế ở các việc như tham số truyền vào hàm \(\texttt{check}\) không hợp lệ, hàm \(\texttt{check}\) được gọi nhiều hơn \(10^6\) lần, kết quả trả về của hàm \(\texttt{play}\) không chính xác; bạn sẽ được \(0\) điểm và nhận kết quả chấm là \(\texttt{Kết quả sai}\).
  • Ngược lại, gọi \(\rho\) là số lần gọi hàm \(\texttt{check}\) nhiều nhất trong một bộ dữ liệu, số điểm bạn nhận được là \(\sqrt{\frac{789}{\max(789, \rho)}}\).

Điểm tối đa của một test là \(1\). Điểm của bài nộp là tông điểm đạt được ở tất cả các test.

Ví dụ

Dưới đây là một ví dụ về sự tương tác. Trong ví dụ này, mật mã ẩn là \(x = 7\) và \(y = 22\). Khi đó, hàm play(1) được gọi:

  • Lệnh gọi hàm guess(97) trả về false. Không tồn tại hai số nguyên không âm \(\alpha, \beta\) thỏa mãn \(97 = \alpha \cdot 7 + \beta \cdot 22\).
  • Lệnh gọi hàm guess(227) trả về true. Ta có \(227 = 23 \cdot 7 + 3 \cdot 22\).
  • Hàm cần trả về giá trị \(\{7, 22\}\).

4. LQDOJ Cup 2025 - Round #6 - Tô màu đồ thị

Điểm: 100 (p) Thời gian: 2.5s Bộ nhớ: 1G Input: color.inp Output: color.out

Cho một đa đồ thị vô hướng liên thông gồm \(n\) đỉnh và \(m\) cạnh. Các đỉnh được đánh số từ \(1\) đến \(n\) và các cạnh được đánh số từ \(1\) đến \(m\). Cạnh thứ \(i\) nối đỉnh \(u_i\) với đỉnh \(v_i\) và có trọng số là \(w_i\). Giữa hai đỉnh có thể có một hoặc nhiều cạnh nối, và một đỉnh có thể có cạnh nối tới chính nó. Mỗi đỉnh của đồ thị được tô một màu, màu của đỉnh thứ \(i\) được thể hiện bởi số nguyên \(c_i\). Hai đỉnh \(x\) và \(y\) được tô cùng màu khi và chỉ khi \(c_x = c_y\).

Với hai đỉnh \(x\) và \(y\) bất kì trên đồ thị, ta định nghĩa giá trị \(d(x, y)\) như sau: Xét tất cả các đường đi có tổng trọng số nhỏ nhất từ \(x\) đến \(y\), ta chọn ra đường đi có số màu phân biệt của các đỉnh đi qua là nhỏ nhất. Giá trị \(d(x, y)\) chính là số màu phân biệt nhỏ nhất trên một đường đi ngắn nhất từ \(x\) đến \(y\) này.

Với mỗi đỉnh \(u\), gọi \(s_u = d(u, 1) + d(u, 2) + \ldots + d(u, n)\). Hãy tính \(s_u\) với mọi đỉnh \(u\) trên đồ thị.

Dữ liệu

Vào từ file văn bản color.inp:

  • Dòng đầu tiên chứa hai số nguyên \(n\) và \(m\) \((1 \leq m < n \leq 4 \cdot 10^5)\), lần lượt là số đỉnh và số cạnh của đồ thị.
  • Dòng thứ hai chứa \(n\) số nguyên \(c_1, c_2, \ldots, c_n\) \((1 \leq c_i \leq n)\) thể hiện màu của các đỉnh.
  • Trong \(m\) dòng còn lại, mỗi dòng chứa ba số nguyên \(u_i\), \(v_i\) và \(w_i\) \((1 \leq u_i, v_i \leq n, 1 \leq w_i \leq 227)\) thể hiện cạnh thứ \(i\) của đồ thị.

Kết quả

Ghi ra file văn bản color.out:

  • In ra \(n\) số nguyên \(s_1, s_2, \ldots, s_n\). Các số được viết trên một dòng, phân cách nhau bởi dấu cách.

Ràng buộc

  • Subtask \(1\) (\(5\) điểm): \(n \leq 10\)
  • Subtask \(2\) (\(10\) điểm): \(n \leq 300\)
  • Subtask \(3\) (\(15\) điểm): \(n \leq 5000\)
  • Subtask \(4\) (\(15\) điểm): \(c_1 = c_2 = \ldots = c_n\)
  • Subtask \(5\) (\(15\) điểm): Các số \(c_1, c_2, \ldots, c_n\) đôi một phân biệt.
  • Subtask \(6\) (\(20\) điểm): Mỗi đỉnh kề với tối đa hai cạnh.
  • Subtask \(7\) (\(20\) điểm): Không có ràng buộc gì thêm.

Ví dụ

Ví dụ 1
color.inp
5 4
1 2 3 2 3
1 2 9
2 3 7
2 4 2
1 5 2
color.out
10 9 11 9 12 

5. LQDOJ Cup 2025 - Round #6 - Chụp ảnh trẻ trâu

Điểm: 100 (p) Thời gian: 3.5s Bộ nhớ: 512M Input: photos.inp Output: photos.out

Ngày xửa ngày xưa, ở làng Nhuyễn Hệ, có một cô bé tên là Ngáp, hiệu là Taro. Cô ta nổi tiếng với khuôn mặt thật vi diệu, có thể biến đổi rất kỳ quái và thể hiện rất nhiều dạng cảm xúc. Bởi thế, cô thích selfie và lưu giữ các bức ảnh khuôn mặt mình. Nếu cô chụp 50 bức ảnh thì cũng là 50 sắc thái khác nhau, mỗi bức trông một khác. Đặc biệt nhất là, không bức nào giống với khuôn mặt thật cả. Nhưng biệt tài này cũng tai hại, khi vào một ngày đẹp trời, một thầy giáo cute nào đó vào lớp cô, vô tình rút chiếc Iphone 6plus ra chụp lại vài bức ảnh của cô, thì cô sẽ phải sống trong mối đe doạ bị dìm hàng trên Facebook bất cứ lúc nào.

Lớn lên, Ngáp mở trường mầm non chuyên nuôi nhốt trẻ trâu. Những người được tuyển vào đây phải là sửu nhi giống bà chủ. Vì vậy mà ở đây chụp ảnh là hoạt động luôn được ưa thích.

Để chụp ảnh, các sửu nhi sẽ ngồi vào một chiếc ghế chiều dài \(\ell\). \(n\) sửu nhi, được đánh số từ \(1\) đến \(n\), lần lượt được gọi để ngồi vào ghế. Sửu nhi thứ \(i\) có "độ rộng" cơ thể là \(w_i\), nghĩa là, khi ngồi vào ghế, sửu nhi \(i\) luôn chiếm một khoảng chỗ độ dài \(w_i\). Hai sửu nhi bất kỳ không được ngồi lòng hay gác chân lên nhau, mặc dù chúng có thể ngồi sát nhau một cách tuỳ ý. Khi được gọi đến tên mình, các sửu nhi sẽ nhìn xem trên ghế có khoảng trống nào vừa với "độ rộng" cơ thể mình hay không. Nếu có, chúng chắc chắn sẽ ngồi lên ghế. Vì trẻ trâu, chúng sẽ chọn một chỗ bất kì ngồi được để ngồi, vì vậy đến lượt người tiếp theo có thể không còn chỗ để ngồi nữa.

Những sửu nhi không được chụp ảnh sẽ làm hết sức mình để phá game. Để phòng tránh chúng Ngáp cần bạn viết chương trình xác định xem một sửu nhi có thể ngồi vào ghế hay không.

Dữ liệu

Vào từ file văn bản photos.inp:

  • Dòng đầu tiên chứa số nguyên \(t\) \((1 \leq \tau \leq 12345)\) là số bộ dữ liệu.
  • Tiếp theo là các bộ dữ liệu, mỗi bộ dữ liệu được mô tả trên hai dòng với khuôn dạng sau:
    • Dòng đầu tiên chứa hai số nguyên \(n\) \((1 \leq n \leq 8)\) và \(\ell\) \((1 \leq \ell \leq 10^9)\), lần lượt là số sửu nhi chuẩn bị lên ghế và độ dài ghế.
    • Dòng thứ hai chứa \(n\) số nguyên \(w_1, w_2, \ldots, w_n\) \((1 \leq w_c \leq 10^9)\) là độ rộng cơ thể của các sửu nhi.

Dữ liệu đảm bảo có không quá \(234\) bộ dữ liệu có \(n \geq 7\).

Kết quả

Ghi ra file văn bản photos.out:

  • Với mỗi bộ dữ liệu, in ra kết quả trên một dòng với \(n\) từ, trong đó từ thứ \(i\) là:
    • sit nếu sửu nhi thứ \(i\) chắc chắn có chỗ ngồi;
    • stand nếu sửu nhi thứ \(i\) chắc chắn không có chỗ ngồi;
    • unsure nếu sửu nhi thứ \(i\) có thể có mà cũng có thể không có chỗ ngồi, tùy thuộc vào cách chọn vị trí của những người ngồi trước.

Ràng buộc

Bộ test được chia làm bảy subtask như sau:

  • Subtask \(1\) (\(11\) điểm): \(n \leq 2\)
  • Subtask \(2\) (\(13\) điểm): \(n \leq 3\)
  • Subtask \(3\) (\(13\) điểm): \(n \leq 4\)
  • Subtask \(4\) (\(13\) điểm): \(n \leq 5\)
  • Subtask \(5\) (\(15\) điểm): \(n \leq 6\)
  • Subtask \(6\) (\(16\) điểm): \(n \leq 7\)
  • Subtask \(7\) (\(19\) điểm): \(n \leq 8\)

Với mỗi test, nếu output của bạn không hợp lệ (chứa kí tự lạ, chứa từ không phải sit, stand hay unsure, chứa số từ khác với đáp án của ban giám khảo,...) bạn được \(0\) điểm. Ngược lại, gọi \(\rho\) là số từ bạn đáp đúng và \(\sigma\) là tổng số từ có trong đáp án của ban giám khảo, số điểm bạn nhận được là \({(\frac{\rho}{\sigma})}^e\).

Điểm tối đa của một test là \(1\). Điểm của bài nộp là tông điểm đạt được ở tất cả các test.

Ví dụ

Ví dụ 1
photos.inp
2
3 5
4 7 1
4 3
1 1 2 1
photos.out
sit stand unsure 
sit sit stand unsure 

Giải thích

Trong ví dụ thứ hai, \(n = 4\) người có "độ rộng" lần lượt là \(1\), \(1\), \(2\) và \(1\). Nếu ta coi chiếc ghế như một đoạn của trục số
thực, từ điểm \(x = 0\) tới điểm \(x = 3\) thì:

  • Trước khi người thứ ngồi vào, ghế trống, do đó người này luôn có chỗ để ngồi.
  • Sau khi người thứ nhất ngồi vào, hai khoảng trống hai bên người này có tổng độ dài là \(2\), vì vậy luôn có
    khoảng trống có độ dài lớn hơn \(1\). Vậy người này luôn có chỗ ngồi vào.
  • Sau khi người thứ hai ngồi vào, tổng độ dài các khoảng trống còn lại của ghế là \(1\), vì vậy người thứ ba không thể ngồi vào ghế.
  • Nếu người thứ nhất ngồi ở vị trí từ \(x = 0\) tới \(x = 1\), người thứ hai ngồi ở vị trí \(x = 1\) tới \(x = 2\), thì người thứ tư có thể ngồi ở vị trí từ \(x = 2\) tới \(x = 3\). Trường hợp khác, nếu người thứ nhất ngồi ở vị trí \(x = 0.5\) tới \(x = 1.5\), người thứ hai ngồi
    ở vị trí từ \(x = 1.5\) tới \(x = 2.5\), thì người thứ tư không có chỗ để ngồi (vì hai khoảng trống còn lại là \([0;0.5]\) và \([2.5;3]\) có độ dài nhỏ hơn \(1\)).