Điều hướng chính

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Bài tập

Bài được chọn theo nhịp luyện tập của bạn, cùng mọi bài mới vừa lên.

root

Chia kho báu

100 điểm

Trong buổi lễ mừng chiến thắng tại học viện Chiến lược và Sáng tạo, các thí sinh được tham gia vào một trò chơi mang tên chia kho báu. Có \(N\) kho báu được đặt rải rác trên mặt phẳng tọa độ. Kho báu thứ \(i\) nằm tại ô có tọa độ \((x_i, y_i)\) và có giá trị \(w_i\).

BTC cho phép 4 người chơi chia kho báu theo cách đặc biệt: họ được chọn một cặp số \((X, Y)\) với \(1 \le i < N\). Sau đó, mỗi người sẽ nhận các kho báu nằm trong vùng tương ứng:

  • Người thứ nhất nhận các kho báu tại ô có \(x_i < X\) và \(y_i < Y\)
  • Người thứ hai nhận các kho báu tại ô có \(x_i < X\) và \(y_i > Y\)
  • Người thứ ba nhận các kho báu tại ô có \(x_i > X\) và \(y_i < Y\)
  • Người thứ tư nhận các kho báu tại ô có \(x_i > X\) và \(y_i > Y\)

Giá trị của mỗi người là tổng các \(w_i\) của những kho báu họ nhận được. Với mỗi cặp \((X, Y)\), họ sẽ tính chênh lệch lớn nhất giữa hai người bất kỳ. Trong trường hợp lý tưởng là họ nhận được cùng một giá trị thưởng, nhưng thực tế luôn phũ phàng và nếu đã không thể đồng đều, thì 4 người trên muốn chọn (X,Y) sao cho chênh lệch lớn nhất là nhỏ nhất có thể.

Yêu cầu: Với mỗi \(X = i + 0.5\) \((1 \le i < N)\), hãy tìm giá trị chênh lệch nhỏ nhất có thể giữa người nhận được nhiều kho báu nhất và người nhận được ít nhất.

Input

  • Dòng đầu tiên chứa số nguyên \(N\) --- số kho báu \((1 \le N \le 2 \cdot 10^5)\).
  • \(N\) dòng tiếp theo, mỗi dòng chứa ba số nguyên \(x_i\), \(y_i\), \(w_i\) --- tọa độ và giá trị của kho báu thứ \(i\) \((1 \le x_i, y_i \le n, 1 \le w_i \le 10^9)\).

Output

  • In ra \(N - 1\) dòng, dòng thứ \(i\) chứa số nguyên duy nhất là chênh lệch nhỏ nhất có thể giữa hai người, khi \(X = i + 0.5\).

Example

Test 1

Input
5
1 1 2
2 2 1
3 4 5
4 3 3
5 5 4
Output
9
8
2
6

Scoring

  • Subtask 1 (11 điểm): \(1 \le N \le 200\)
  • Subtask 2 (14 điểm): \(1 \le N \le 5000\)
  • Subtask 3 (48 điểm): \(1 \le N \le 10^5\)
  • Subtask 4 (27 điểm): Không có ràng buộc bổ sung

root

Bật đèn

100 điểm

Trong tòa nhà trung tâm hội nghị Bitland có \(N\) phòng họp (đánh số từ \(1\) đến \(N\)) và \(M\) hành lang nối các phòng đó. Biết rằng:

  • Mỗi hành lang nối hai phòng khác nhau.
  • Giữa hai phòng bất kỳ, tối đa chỉ có một hành lang.
  • Từ bất kỳ phòng nào cũng có thể đi tới bất kỳ phòng khác thông qua các hành lang.

Vào buổi sáng, hệ thống đèn trong một số phòng có thể đang bật, trong khi ở những phòng khác thì không. Nhiệm vụ của bạn là bật đèn trong tất cả các phòng vào đầu ngày làm việc.

Tuy nhiên, toàn bộ đèn của mỗi phòng họp chỉ dùng chung một công tắc cảm biến rất kỳ lạ. Mỗi lần bạn bước vào một phòng, nếu toàn bộ đèn trong phòng đang bật thì công tắc sẽ tự động tắt hết đèn; nếu toàn bộ đèn đang tắt thì công tắc sẽ tự động bật hết đèn.

Cửa vào tòa nhà là ở phòng số \(1\), vì vậy bạn bắt đầu bằng cách bước vào phòng \(1\) và đi theo một hành trình theo thứ tự đến các phòng, mỗi phòng nào đó bạn có thể vào nhiều hơn một lần, cũng có phòng bạn có thể không vào lần nào. Bạn có thể kết thúc hành trình ở bất kỳ phòng nào. Vì sắp đến giờ làm việc, bạn phải đảm bảo rằng tất cả các phòng đều có đèn bật.

Yêu cầu: Bạn hãy tìm một hành trình đi đến các phòng họp sao cho tất cả các phòng đều có đèn được bật và thỏa mãn điều kiện tổng số lần đến các phòng không được vượt quá \(5 \times 10^5\).

Input

Vào từ tệp văn bản LAMP.INP:

  • Dòng đầu tiên gồm hai số nguyên \(N\) và \(M\) \((2 \le N \le 10^5,\ 1 \le M \le 10^5)\), theo thứ tự là số phòng và số hành lang;
  • Dòng thứ hai gồm \(N\) số nguyên, mỗi số là \(0\) hoặc \(1\). Số thứ \(i\) là \(1\) nếu đèn trong phòng \(i\) đang bật, là \(0\) nếu đèn đang tắt. Biết rằng ít nhất một phòng có đèn đang tắt;
  • \(M\) dòng tiếp theo, mỗi dòng gồm hai số nguyên \(U_i\) và \(V_i\) \((1 \le U_i < V_i \le N)\), biểu thị có một hành lang nối giữa phòng \(U_i\) và \(V_i\).

Các số trên cùng một dòng của tệp dữ liệu, tệp kết quả được ghi cách nhau bởi dấu cách.

Output

Ghi ra tệp văn bản LAMP.OUT:

  • Dòng đầu tiên ghi một số nguyên \(K\) số lượt đi vào các phòng trong hành trình. Số này không cần nhỏ nhất, nhưng phải không lớn hơn \(5 \times 10^5\);
  • Dòng thứ hai ghi \(K\) số nguyên là thứ tự các phòng bạn bước vào (bắt đầu từ phòng \(1\)), sao cho sau khi kết thúc, tất cả các phòng đều có đèn được bật.

Nếu có nhiều đáp án thỏa mãn, bạn có thể in ra bất kỳ đáp án hợp lệ nào.

Example

Test 1

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

Trạng thái đèn ban đầu: Phòng 1: Tắt, Phòng 2: Bật, Phòng 3: Bật, Phòng 4: Tắt.

Sau 4 bước đầu: \(\to 1 \to 3 \to 2 \to 4\). Trạng thái đèn: Phòng 1, 4: Bật; Phòng 2, 3: Tắt.

Sau 2 bước cuối: \(\to 3 \to 2\). Tất cả đèn các phòng đều bật.

Scoring

  • Subtask 1 (30% số điểm): \(N \le 100\);
  • Subtask 2 (15% số điểm): chỉ có một phòng duy nhất có đèn tắt;
  • Subtask 3 (15% số điểm): các hành lang nối tiếp các phòng thành một dãy theo thứ tự \(1, 2, 3, \ldots, N-1, N\);
  • Subtask 4 (20% số điểm): tất cả các phòng (trừ phòng \(1\)) chỉ nối với phòng \(1\);
  • Subtask 5 (20% số điểm): không có ràng buộc gì thêm.

root

Số gấp đôi

100 điểm

Nhập vào hai số nguyên \(a\) và \(b\). Nếu \(b\) gấp đôi mà bằng \(a\), thì in ra "a gap doi b", ngược lại in ra "a khong gap doi b".

Example

Test 1

Input
4 2
Output
a gap doi b

Test 2

Input
2 4
Output
a khong gap doi b

root

Chia ruộng

100 điểm

Trong làng Omega có một ông phú hộ rất giàu có. Tài sản của ông rất nhiều trâu, bò, và cả... ruộng vườn. Một hôm ông gọi 3 người con đã đến tuổi trưởng thành đến, và định chia cho mỗi người một phần ruộng để làm ăn.

Ông có tổng cộng \(n\) thửa ruộng, mỗi thửa có diện tích nguyên dương. Ông muốn chia đều toàn bộ \(n\) thửa ruộng này cho 3 người con, sao cho:

  • Mỗi người nhận một nhóm thửa ruộng (có thể không bằng nhau về số lượng).
  • Tổng diện tích của ruộng mỗi người nhận phải bằng nhau.

Hỏi có bao nhiêu cách chia \(n\) thửa ruộng đó thành 3 phần sao cho thỏa điều kiện trên?

Chú ý: Hai cách chia được coi là khác nhau nếu có ít nhất một thửa ruộng được phân cho người khác.

Input

  • Dòng đầu tiên chứa một số nguyên \(n\) \((1 \le n \le 20)\) --- số thửa ruộng.
  • Dòng thứ hai chứa \(n\) số nguyên \(a_1, a_2, ..., a_n\) \((100 \le a_i \le 5000)\) --- diện tích của từng thửa ruộng.

Output

In ra một số nguyên là số cách chia hợp lệ. Nếu không thể chia được, in ra -1.

Example

Test 1

Input
5
100 200 250 50 30
Output
-1
Xem thêm