Đ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

Bảo vệ security

100 điểm

Một thành phố có \(N\) địa điểm chiến lược và \(M\) con đường một chiều giữa các địa điểm. Là thị trưởng của thành phố, bạn sẽ phải bảo vệ an toàn cho \(N\) địa điểm này.

Để có thể bảo vệ cho các địa điểm, bạn phải xây dựng các đồn cảnh sát tại một vài địa điểm. Đồn cảnh sát tại địa điểm \(i\) có thể bảo vệ cho địa điểm \(j\) nếu \(i = j\) hoặc cảnh sát có thể đi tuần tới địa điểm \(j\) từ \(i\) và có thể quay trở lại đồn tại địa điểm \(i\).

Để có thể xây dựng được các đồn cảnh sát cần phải mất chi phí, do địa hình mỗi địa điểm là khác nhau nên chi phí xây dựng đồn cũng có thể khác nhau.

Bạn phải xác định số tiền nhỏ nhất để xây dựng các đồn cảnh sát để có thể bảo vệ được tất cả \(N\) địa điểm, hơn nữa bạn phải đưa ra có bao nhiêu cách xây dựng để đảm bảo chi phí nhỏ nhất đó.

Input

  • Dòng \(1\) chứa số nguyên dương \(N\) \((1 \leq N \leq 10^5)\)

  • Dòng \(2\) chứa \(N\) số nguyên, trong đó số nguyên thứ \(i\) là chi phí để xây dựng đồn cảnh sát tại địa điểm \(i\) (chi phí $ \leq 10^9$).

  • Dòng \(3\) chứa số nguyên \(M\) \((0 \leq M \leq 3 \times 10^5)\)

  • \(M\) dòng tiếp theo, mỗi dòng chứa hai số nguyên dương \(u\) và \(v\) \((1 \leq u, v \leq n; u \neq v)\) biểu diễn một con đường một chiều nối từ địa điểm \(u\) tới \(v\). Không có nhiều hơn \(1\) con đường nối giữa \(2\) địa điểm.

Output

Một dòng duy nhất chứa hai số, số thứ nhất là chi phí nhỏ nhất để xây dựng các đồn cảnh sát, số thứ hai là số phương án xây dựng mod \(10^9+7\).

Example

Test 1

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

root

Cân thăng bằng

100 điểm

Cân thằng bằng đã từng rất phổ biến trong xã hội loài người, vì tính đơn giản của nó. Cấu tạo của cân gồm hai đĩa \(A, B\) được đặt ở hai đầu của một đòn bẩy.

Có \(n\) quả cân, quả thứ \(i\) có khối lượng \(m_i\). Để cân một vật, người ta đặt nó vào đĩa \(A\), sau đó thêm một vài quả cân vào các đĩa sao cho cân thăng bằng. Lúc này, cân nặng của vật là tổng khối lượng các quả cân trên đĩa \(B\) trừ đi tổng khối lượng các quả cân trên đĩa \(A\), vì cân chỉ thăng bằng khi tổng khối lượng trên đĩa \(A\) bằng tổng khối lượng trên đĩa \(B\).

Tuần trước, con chim vừa chở người em đi lấy vàng về, người em tiến hành cân lại số vàng mình nhận được. Để thuận tiện, anh ấy sẽ để nguyên túi vàng và cân một lần thay vì phải tách số vàng ra. Sau khi cân, anh ấy biết chính xác rằng túi vàng nặng \(M\).

Sau đó, vì tò mò và đam mê thuật toán, anh ấy thắc mắc là liệu có bao nhiêu cách cân khác nhau? Cụ thể hơn, bạn được cho một vật có khối lượng \(M\), bạn đặt nó vào đĩa \(A\) sau đó thêm một số quả cân vào các đĩa sao cho cân thăng bằng. Cần đếm số cách khác nhau để thêm các quả cân như trên. Hai cách được coi là khác nhau nếu tồn tại \(i\), \(1 ≤ i ≤ n\), sao cho hoặc là trong cách này thì sử dụng quả cân thứ \(i\) còn trong cách kia thì không, hoặc là cả hai cách đều sử dụng quả cân thứ \(i\) nhưng đặt vào hai đĩa khác nhau.

Input

  • Dòng đầu chứa: \(n, M\)

  • Dòng tiếp theo chứa dãy \(m\)

Output

  • Một số nguyên duy nhất là kết quả bài toán

Example

Test 1

Input
6 10
1 2 3 4 5 6
Output
17
Note

• \(n ≤ 20\), \(1 ≤ m_i\) , \(M\) ≤ \(10^6\) ;

root

Màu thống trị trên cây

100 điểm

Cho một cây \(n\) nút, nút thứ \(i\) được tô một màu \(c_i\). Có \(Q\) truy vấn, mỗi truy vấn có dạng \(x, y\): Cần tìm xem trên đường đi đơn từ \(x\) đến \(y\) trên cây, màu nào là màu thống trị. Một màu được gọi là thống trị nếu số lần xuất hiện của nó lớn hơn hẳn tổng số lần xuất hiện của các màu khác (trên đường đi đang xét).

Input

  • Dòng đầu chứa hai số nguyên dương: \(n\) \(Q\).

  • Dòng thứ hai chứa \(n\) số nguyên: \(c_1\) \(c_2\) \(\ldots\) \(c_n\) (\(1 \leq c_i \leq n\)).

  • Mỗi dòng trong số \(n-1\) dòng tiếp theo ghi một cạnh của cây: \(u\) \(v\).

  • Mỗi dòng trong số \(Q\) dòng tiếp theo ghi một truy vấn: \(x\) \(y\).

Output

  • Với mỗi truy vấn, in ra trên một dòng màu tìm được. Nếu không có màu nào thống trị đường đi đó, in ra \(-1\).

Example

Test 1

Input
7 4
3 1 1 2 1 1 2
1 3
7 5
2 3
5 3
5 6
4 5
1 4
7 2
3 3
4 7
Output
-1
1
1
2

Scoring

  • Subtask #1 (\(25\%\) số điểm): \(n,Q \leq 1000\).

  • Subtask #2 (\(75\%\) số điểm): \(n,Q \leq 250000\).

root

Câu 1 (2,0 điểm). Chia sân bóng

100 điểm

Một mảnh đất hình chữ nhật có độ dài các cạnh lần lượt là \(a\) và \(b\). Người ta muốn xây dựng các sân bóng mini bằng cách chia mảnh đất đó thành các mảnh đất hình vuông có độ dài cạnh là \(n\).

Yêu cầu: Hãy tìm số lượng sân bóng mini nhiều nhất có thể tạo ra từ mảnh đất ban đầu đó.

Input

Dữ liệu vào: Cho tệp văn bản CAU1.INP gồm một dòng chứa ba số nguyên dương \(a, b, n\) (\(a, b, n \leq 10^{9}\)). Các số được ghi cách nhau bởi một dấu cách.

Output

Kết quả: Ghi ra tệp văn bản CAU1.OUT gồm một dòng ghi một số nguyên là kết quả của bài toán.

Example

Test 1

Input
3 6 2
Output
3
Xem thêm