Điều hướng chính

Nhắn tin NQ Coding

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.

Dễ

Thay đổi dữ liệu

100 điểm 0% AC 0 đã giải

root

Dữ liệu tài chính của một công ty trong \(n\) ngày được biểu diễn bằng một dãy số \(t_1, t_2, \ldots, t_n\) trong đó \(t_i\) \((1 \leq i \leq n)\) là dữ liệu cho ngày thứ \(i\), nếu \(t_i \geq 0\) tức là ngày \(i\) công ty thu về \(t_i\) đồng, ngược lại \(t_i < 0\) tức là ngày \(i\) công ty phải chỉ \(|t_i|\) đồng. Lãnh đạo công ty thường thống kê số liệu về tổng thu chỉ của một dãy ngày liên tiếp mà có biến động lớn nhất, mức đánh giá biến động từ ngày \(L\) đến ngày \(R\) được tính bằng \(|\sum_{i = L}^{R} t_i|\).

Một nhân viên đã truy cập trái phép dữ liệu của công ty trước khi lãnh đạo công ty thống kê số liệu, nhân viên đã thay đổi số liệu của một dãy các ngày liên tiếp từ ngày \(u\) đến ngày \(v\) \((1 \leq u \leq v \leq n)\) một lượng \(c\), cụ thể với ngày \(i\) \((u \leq i \leq v)\) giá trị \(t_i\) được thay đổi bằng \(t_i + c\). Sau khi thống kê số liệu xong, nhân viên này sẽ lại thay đổi dữ liệu như ban đầu.

Yêu cầu: Cho biết dữ liệu ban đầu là \(t_1, t_2, \ldots, t_n\) Và \(q\) giả định thay đổi số liệu, với mỗi giả định hãy cho biết giá trị \(|\sum_{i = L}^{R} t_i|\) lớn nhất với \(1 \leq L \leq R \leq n\).

Input

  • Dòng đầu chứa hai số nguyên dương \(n, q\);

  • Dòng thứ hai chứa \(n\) số nguyên \(t_1, t_2, \ldots, t_n\) \((|t_i| \leq 10^9)\);

  • Dòng thứ \(k\) \((1 \leq k \leq q)\) trong \(q\) dòng sau, mỗi dòng chứa ba số nguyên mô tả giả định thay đổi số liệu \(u, v, c\) \((1 \leq u, v \leq n; |c| \leq 10^9)\).

Output

  • Gồm \(q\) dòng, mỗi dòng chứa một số nguyên là giá trị mà lãnh đạo công ty thống kê được tương ứng với giả định trong file dữ liệu vào.

Example

Test 1

Input
5 2
1 -1 2 1 1
2 2 -2
2 4 -2
Output
4
4

Scoring

  • Subtask \(1\) (\(15\) điểm): \(n, q \leq 20\);

  • Subtask \(2\) (\(15\) điểm): \(n, q < 5000\);

  • Subtask \(3\) (\(20\) điểm): \(n, q < 10^5\) và cả \(q\) giả định có \(v - u \leq 20\);

  • Subtask \(4\) (\(30\) điểm): \(n, q < 10^5\) và số cặp \((u, v)\) khác nhau trong \(q\) giả định không quá \(20\) cặp;

  • Subtask \(5\) (\(20\) điểm): \(n, q < 10^5\).

Dễ

Đặc vụ

100 điểm 0% AC 0 đã giải

root

Hải đang chơi một trò chơi nhập vai, trong trò chơi này, anh vào vai một đặc vụ đang thực hiện nhiệm vụ xâm nhập vào một khu vực quân sự tuyệt mật. Khu vực này được mô phỏng bằng một hệ thống giao thông gồm \(n\) điểm kiểm soát, kết nối với nhau bằng các con đường hai chiều.

Tuy nhiên, hệ thống được bảo vệ nghiêm ngặt; khiến cho việc thực hiện nhiệm vụ của Hải diễn ra lâu hơn dự tính:

  • Một số điểm kiểm soát có cài đặt khóa, có \(k\) loại khóa trên toàn hệ thống: nếu muốn vào phải có chìa khóa tương ứng.
  • Một số điểm kiểm soát khác cất giữ chìa khóa. Hải có thể thu thập chìa khóa đó khi qua điểm kiểm soát tương ứng.

Ban đầu, trò chơi bắt đầu khi Hải tiến vào điểm kiểm soát số 1; trong tay anh không có bất kỳ chìa khóa nào. Mỗi khi đi qua một điểm kiểm soát:

  • Nếu điểm đó không bị khóa, Hải có thể điều khiển nhân vật ra vào tự do.
  • Nếu điểm đó có khóa loại \(x\), anh chỉ có thể vào nếu bạn đã sở hữu chìa khóa loại \(x\).
  • Nếu tại điểm đó có chứa khóa loại \(y\), bạn sẽ nhận được chìa khóa và có thể dùng ngay tại bước kế tiếp.

Mục tiêu của trò chơi là thâm nhập vào một địa điểm trung tâm (có thể là một địa điểm bất kỳ trong hệ trạm kiểm soát), thông qua các con đường có sẵn. Mỗi lần vào chơi, điểm trung tâm lại thay đổi nên Hải cần tính toán thời gian ít nhất để di chuyển từ điểm kiểm soát \(1\) tới mỗi điểm kiểm soát khác.

Yêu cầu: Bạn hãy giúp Hải tính toán thời gian di chuyển nhé.

Input

  • Dòng đầu tiên chứa ba số nguyên \(n, m, k\) (\(n \le 10^5, m \le 2 \times 10^5, k \le 5\)) là số địa điểm, số con đường và số loại khóa.

  • Dòng thứ hai chứa n số nguyên \(a_1, a_2, ..., a_n\) (\(|a_i| \le k\)) mô tả về khóa tại các địa điểm: \(a_i = -1\) nếu tại điểm kiểm soát thứ \(i\) không có khóa, ngược lại là loại khóa được giữ tại đó.

  • Dòng thứ ba chứa \(n\) số nguyên \(b_1, b_2, ..., b_n\) (\(|b_i| \le k\)) mô tả các địa điểm có cài đặt các loại khóa: \(b_i = -1\) cho biết tại điểm thứ \(i\) không cài đặt khóa nào, ngược lại là loại chìa khóa cần để vào điểm kiểm soát \(i\).

  • \(m\) dòng tiếp, mỗi dòng gồm hai số nguyên dương \(u, v\) (\(u,v \le n\)) mô tả một đường nối giữa hai điểm kiểm soát \(u\) và \(v\).

Output

Một dòng gồm \(n\) số nguyên tương ứng là thời gian ít nhất để tới các điểm kiểm soát \(1,2,3,\ldots,n\) xuất phát từ địa điểm \(1\). Nếu không thể di chuyển từ \(1\) đến \(i\) thì tại vị trí \(i\) in ra \(-1\).

Example

Test 1

Input
5 4 2
-1 2 -1 1 -1
2 -1 -1 -1 1
1 2
1 3
2 4
3 5
Output
0 1 1 6 2 
Note

Để vào được đỉnh 4, cần đi theo lộ trình
1->3->5->3->1->2->4

Scoring

  • Có \(30\%\) số điểm của bài thỏa mãn không có khóa nào trên các đỉnh
  • Có \(30\%\) số điểm khác thỏa mãn \(k = 1\)
  • Còn lại không có điều kiện gì thêm
Dễ

Cây khung 1

100 điểm 0% AC 0 đã giải

root

Với một đồ thị vô hướng có trọng số và liên thông, ta định nghĩa cây khung của đồ thị là đồ thị con có dạng cây và chứa tất cả các đỉnh của đồ thị. Trọng số của cây khung là tổng trọng số các cạnh thuộc cây. Trong bài toán này, chúng ta sẽ xét cách xây dựng đồ thị và tìm cây
khung có trọng số nhỏ nhất trên đồ thị được tạo ra.

Cho dãy số nguyên \(w_1, w_2, \ldots, w_n\) với số nguyên \(t\), ta xây dựng đồ thị gồm \(n\) đỉnh, đỉnh \(i\) nối với đỉnh \(j\) bằng cạnh vô hướng với trọng số \(w_i \times w_j + t \times (w_i + w_j)\).

Yêu cầu: Có \(q\) truy vấn tương ứng với \(q\) giá trị \(t\), tìm cây khung có trọng số nhỏ nhất tương ứng.

Input

  • Dòng đầu chứa hai số nguyên \(n, q\).
  • Dòng thứ hai gồm \(n\) số nguyên \(w_1, w_2, \ldots, w_n\ (|w_i| \le 10^6)\).
  • Dòng thứ ba gồm \(q\) số tương ứng với từng truy vấn, các số có giá trị tuyệt đối không vượt quá \(10^6\).

Output

  • Gồm \(q\) dòng, mỗi dòng là trọng số của cây khung tương ứng với từng giá trị \(t\).

Example

Test 1

Input
3 2
1 0 -1
0 1
Output
-1 -2 

Scoring

  • Có \(40\%\) số test ứng với \(40\%\) số điểm có \(n \le 10^3; q \le 5\).
  • Có \(30\%\) số test khác ứng với \(30\%\) số điểm có \(n \le 10^5; q \le 5\).
  • Có \(30\%\) số test còn lại ứng với \(30\%\) số điểm có \(n \le 10^5; q \le 10^5\).
Dễ

Bài 3 : Hợp chất hóa học (5.0 điểm)

100 điểm 0% AC 0 đã giải

root

Trong phòng thí nghiệm hóa học, Giáo sư X đang nghiên cứu phản ứng giữa hai nhóm chất xúc tác. Nhóm A gồm \(N\) lọ hóa chất, lọ thứ \(i\) có nồng độ \(A_i\). Nhóm B gồm \(M\) lọ hóa chất, lọ thứ \(j\) có nồng độ \(B_j\).

Giáo sư phát hiện ra rằng, nếu trộn lọ thứ \(i\) của nhóm A và lọ thứ \(j\) của nhóm B, phản ứng sẽ tạo ra một hợp chất hoàn hảo khi và chỉ khi tích nồng độ của chúng đúng bằng một hằng số \(K\) (\(A_i \times B_j = K\)).

Hãy giúp giáo sư đếm xem có bao nhiêu cặp chỉ số \((i, j)\) (\(1 \le i \le N, 1 \le j \le M\)) có thể tạo ra hợp chất hoàn hảo này.

Input

Vào từ tệp văn bản HOPCHAT.INP có cấu trúc:

  • Dòng đầu tiên chứa ba số nguyên \(N, M, K\) (\(1 \le N, M \le 2 \cdot 10^5, |K| \le 10^{18}\)).
  • Dòng thứ hai chứa \(N\) số nguyên biểu diễn dãy \(A\) (\(|A_i| \le 10^9\)).
  • Dòng thứ ba chứa \(M\) số nguyên biểu diễn dãy \(B\) (\(|B_j| \le 10^9\)).

Output

Ghi ra tệp văn bản HOPCHAT.OUT một số nguyên duy nhất là số cặp \((i, j)\) thỏa mãn.

Example

Test 1

Input
3 3 6
2 3 6
3 2 1
Output
3
Note

Giải thích: Các cặp \((A_i, B_j)\) có tích bằng 6 là:

  • \(A_1=2\) và \(B_1=3 \rightarrow 2 \times 3 = 6\).
  • \(A_2=3\) và \(B_2=2 \rightarrow 3 \times 2 = 6\).
  • \(A_3=6\) và \(B_3=1 \rightarrow 6 \times 1 = 6\).

Tổng cộng có 3 cặp.

Scoring

  • Subtask 1 (\(30\%\) số điểm): \(N, M \le 1000\).
  • Subtask 2 (\(30\%\) số điểm): \(K = 0\).
  • Subtask 3 (\(40\%\) số điểm): Không có ràng buộc gì thêm.
Xem thêm