Đ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.

Dễ

Dãy số đẹp theo số ước

100 điểm 50% AC 1 đã giải

staffagent

Với mỗi số nguyên dương \(x\), gọi \(d(x)\) là số ước dương của \(x\). Một dãy số nguyên dương được gọi là dãy đẹp nếu số ước của các phần tử tăng thực sự theo thứ tự trong dãy, tức là \(d(b_1) < d(b_2) < \ldots < d(b_k)\).

Cho dãy \(a_1, a_2, \ldots, a_n\). Ta được xóa một số phần tử (giữ nguyên thứ tự các phần tử còn lại) để phần còn lại là một dãy đẹp. Hãy tìm độ dài lớn nhất của dãy đẹp có thể thu được (tức là số phần tử ít nhất phải xóa là \(n\) trừ đi giá trị này).

Input

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

Output

  • In ra một số nguyên: số phần tử lớn nhất của dãy đẹp thu được.

Constraints

  • \(1 \le n \le 5 \cdot 10^5\)
  • \(1 \le a_i \le 10^9\)
  • Subtask 1 (20%): \(n \le 20\), \(a_i \le 10^3\).
  • Subtask 2 (40%): \(n \le 10^3\), \(a_i \le 10^6\).
  • Subtask 3 (20%): \(n \le 5 \cdot 10^4\), \(a_i \le 10^6\).
  • Subtask 4 (20%): không có ràng buộc thêm.

Sample Input 1

6
12 2 9 7 30 4

Sample Output 1

3

Explanation

Số ước của từng phần tử là \(6, 2, 3, 2, 8, 3\). Có thể giữ lại các phần tử \(2, 9, 30\) (số ước \(2 < 3 < 8\)) tạo thành dãy đẹp dài \(3\), và không có dãy đẹp nào dài hơn.

Dễ

Tối ưu

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

root

Thành phố Ngân là một trong những trung tâm đô thị phát triển bậc nhất, với mạng lưới giao thông hiện đại nhưng phức tạp. Hệ thống bao gồm \(n\) nút giao thông (tượng trưng cho các ngã tư, vòng xuyến, hay điểm giao giữa các tuyến đường) và \(m\) tuyến đường một chiều nối các nút này.

Tuy nhiên, dưới áp lực dân số tăng cao và sự phát triển kinh tế, chính quyền thành phố buộc phải đánh giá lại hệ thống hạ tầng và tìm giải pháp tối ưu hoá thời gian di chuyển trong nội đô. Việc này đòi hỏi các chuyên gia thuật toán, như bạn, tìm ra những cải tiến hiệu quả nhất với chi phí thấp nhất.

Mỗi tuyến đường trong thành phố là một đoạn một chiều cho phép đi từ nút $u_i$ đến nút $v_i$, và mất $t_i$ đơn vị thời gian để đi qua. Thành phố muốn tìm cách rút ngắn thời gian đi từ trung tâm hành chính (nút $1$) đến các khu vực khác (nút $s$) bằng cách **nâng cấp một tuyến đường bất kỳ**. Sau khi được nâng cấp, thời gian qua tuyến đó giảm còn đúng $t_0$.

**Lưu ý:** Chỉ được phép nâng cấp nhiều nhất một tuyến đường. Bạn không thể nâng cấp nhiều tuyến đường cùng lúc.

Input

  • Dòng đầu gồm ba số nguyên \(n\), \(m\), \(q\) --- số nút, số tuyến đường, và số yêu cầu truy vấn \((1 \le n \le 2000,\ 1 \le m \le 10^4,\ 1 \le q \le 2 \cdot 10^6)\).
  • \(m\) dòng tiếp theo: mỗi dòng gồm ba số nguyên \(u_i\), \(v_i\), \(t_i\) --- mô tả tuyến đường đi từ \(u_i\) đến \(v_i\) với thời gian gốc là \(t_i\) \((1 \le u_i, v_i \le n; u_i \ne v_i; 1 \le t_i \le 2000)\).
  • \(q\) dòng tiếp theo: mỗi dòng gồm hai số nguyên \(s\) và \(t_0\) --- tương ứng là điểm đến và thời gian sau khi nâng cấp \((1 \le s \le n; 1 \le t_0 \le 2000)\).

Output

Ghi ra \(q\) dòng, dòng thứ \(j\) là thời gian ngắn nhất để đi từ nút \(1\) đến nút \(s\) của truy vấn thứ \(j\), khi được phép nâng cấp nhiều nhất một tuyến đường.

Nếu không thể đi từ nút $1$ đến nút $s$ (dù nâng cấp bất kỳ tuyến nào), in ra `-1`.

Example

Test 1

Input
4 4 3
1 2 6
2 4 10
1 3 16
3 4 4
3 14
4 14
4 11
Output
14
16
15

Scoring

  • Subtask 1 (30% số điểm): \(n \le 20\), \(q \le 200\).
  • Subtask 2 (40% số điểm): \(n \le 200\), \(q \le 2000\).
  • Subtask 3 (30% số điểm): \(n \le 2000\), \(q \le 2 \cdot 10^6\).
Dễ

Kẹo nhỏ

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

staffagent

An và Bình là hai anh em.

Ba của An sau một chuyến đi công tác xa trở về, mua cho hai anh em \(N\) gói kẹo. Gói thứ \(i\) có \(A_i\) viên kẹo.

Để tránh việc tranh giành lẫn nhau, ba của An đưa ra cách chia như sau:

  • Chọn một số nguyên \(k\) (\(1 \le k < N\)).
  • An nhận các gói từ \(1\) đến \(k\), Bình nhận các gói từ \(k+1\) đến \(N\).

Để hai anh em vui vẻ, ba muốn chọn \(k\) sao cho chênh lệch tổng số viên kẹo giữa hai người là nhỏ nhất.

Input

  • Dòng đầu chứa số nguyên \(N\) (\(2 \le N \le 200\,000\)) — số lượng gói kẹo.
  • Dòng thứ hai chứa \(N\) số nguyên \(A_1, A_2, \ldots, A_N\) (\(1 \le A_i \le 10^9\)) — số viên kẹo trong từng gói.

Output

In ra một số nguyên — chênh lệch nhỏ nhất có thể giữa tổng số viên kẹo của An và Bình.

Scoring

  • Subtask 1 (\(50\%\)): \(N \le 2000\).
  • Subtask 2 (\(50\%\)): Không có ràng buộc thêm.

Sample Input 1

5
5 1 3 2 6

Sample Output 1

1

Sample Input 2

6
4 5 3 6 1 2

Sample Output 2

3

Sample Input 3

2
100 100

Sample Output 3

0
Dễ

Số số chia hết cho K

100 điểm 58% AC 21 đã giải

root

Viết chương trình nhập từ bàn phím một dãy \(a\) gồm \(n\) số nguyên dương \(a_1, a_2, a_3, \dots, a_n\). Tiếp theo, nhập vào một số nguyên dương \(K\) \((K > 0)\). Hãy đếm số lượng các phần tử trong mảng chia hết cho \(K\).

Input

  • Dòng đầu tiên là số nguyên dương \(n\) - độ dài của dãy \(a\). \((1 \leq n \leq 100)\).
  • Dòng thứ hai là \(n\) số nguyên \(a_1, a_2, a_3, \dots, a_n\) - mỗi số cách nhau một dấu cách \((1 \leq a_i \leq 100)\).
  • Dòng thứ ba là số nguyên dương \(K\) \((1 \leq K \leq 100)\).

Output

Một dòng duy nhất chứa số lượng các phần tử chia hết cho \(K\).

Example

Test 1

Input
5
2 3 4 5 6
2
Output
3
Xem thêm