Đ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

Ước đặc biệt

100 điểm

Số nguyên \(d\) là ước đặc biệt của số nguyên dương \(n\) khi \(1 < d < n\) và khi chia \(n\) cho \(d\) thì thương và số dư bằng nhau.

Ví dụ: \(3\) là ước đặc biệt của \(8\) bởi khi chia \(8\) cho \(3\) ta được thương là \(2\) và số dư khi chia \(8\) cho \(3\) cũng là \(2\).

Theo định nghĩa, nếu \(d\) là ước đặc biệt của \(n\) thì \(d\) không nhất thiết phải là một ước của \(n\).

Yêu cầu: Cho hai số nguyên dương \(a\) và \(b\) \((a \leq b)\), hãy tính tổng số lượng ước đặc biệt của tất cẩ các số \(n\) trong đoạn nguyên \([a, b]\).

Input

Vào từ tệp văn bản CAU3.INP gồm một dòng chứa hai số nguyên \(a, b\) \((1 < a \leq b < 300000, b - a < 300000)\), các số ghi cách nhau dấu cách.

Output

Ghi ra tệp văn bản CAU3.OUT gồm một dòng ghi một số là tổng số ước đặc biệt của tất cả các số trong đoạn \([a, b]\).

Example

Test 1

Input
15 17
Output
5
Note

Ví dụ 1: Số \(15\) có hai ước đặc biệt là \(4\) và \(14\). \(15\) chia cho \(4\) được thương là \(3\) và số dư khi chia \(15\) cho \(4\) cũng là \(3\). Tương tự \(16\) có hai ước đặc biệt là \(7\) và \(15\). \(17\) chỉ có một ước đặc biệt là \(16\). Tổng cộng có \(5\) ước đặc biệt của các số trong đoạn \([15; 17]\).

Ví dụ 2: Các số \(4, 5, 6, 7\) chỉ có một ước đặc biệt tương ứng là \(3, 4, 5, 6\). \(8\) có hai ước đặc biệt là \(3\) và \(7\). Tổng cộng có \(6\) ước đặc biệt của các số trong đoạn \([4, 8]\).

Test 2

Input
4 8
Output
6

Scoring

\(50\%\) số test tương ứng với \(50\%\) số điểm có \(1 < b - a < 15000\).

root

Phân phối hàng hóa

100 điểm

Công ty Logistics ABC đang quản lý một dây chuyền đóng gói hàng hóa. Mỗi lượt, có \(n\) kiện hàng được xếp liên tiếp nhau, với kiện hàng thứ \(i\) có giá trị là \(a_i\). Để thuận tiện cho việc vận chuyển, các kiện hàng cần được chia thành \(k\) lô hàng. Mỗi lô hàng bao gồm một số kiện liên tiếp trên dây chuyền, và mỗi kiện hàng chỉ thuộc về đúng một lô. Tổng giá trị của các kiện hàng trong mỗi lô không được vượt quá một giới hạn cho trước là \(c\).

Sau khi chia lô, công ty cần đánh giá chất lượng của mỗi lô bằng cách tìm kiện hàng có giá trị lớn nhất. Tổng giá trị của các kiện hàng lớn nhất này từ tất cả các lô được gọi là điểm số \(s\).

Yêu cầu: Với mỗi giới hạn \(c\) được đưa ra, hãy giúp công ty tìm cách chia \(n\) kiện hàng thành một số lô nhỏ nhất có thể (\(k\) nhỏ nhất). Trong số các cách chia có cùng số lô nhỏ nhất này, hãy chọn cách chia mang lại điểm số \(s\) lớn nhất.

Input

  • Dòng đầu tiên chứa một số nguyên \(n\) (\(1 \le n \le 10^5\)).
  • Dòng thứ hai chứa \(n\) số nguyên \(a_1, a_2, \ldots, a_n\) (\(1 \le a_i \le 10^9\)).
  • Dòng thứ ba chứa một số nguyên \(q\) (\(1 \le q \le 10\)) là số lượng truy vấn.
  • Mỗi dòng trong số \(q\) dòng tiếp theo tương ứng với một truy vấn chứa một số nguyên \(c\) (\(\max(a_1, a_2, \ldots, a_n) \le c \le 10^{10}\)).

Output

  • Gồm \(q\) dòng, mỗi dòng tương ứng với một truy vấn, in ra hai số nguyên \(k\) và \(s\) tìm được.

Example

Test 1

Input
5
5 3 2 2 5
2
9
8
Output
2 10
3 13

Scoring

  • Subtask 1 (20% số điểm): \(n \le 20\).
  • Subtask 2 (20% số điểm): \(n \leq 100\).
  • Subtask 3 (20% số điểm): \(a_1 \ge a_2 \ge \ldots \ge a_n\).
  • Subtask 4 (10% số điểm): \(k \leq 3\).
  • Subtask 5 (10% số điểm): \(c \leq 100\).
  • Subtask 6 (20% số điểm): Không có ràng buộc gì thêm.

root

Truy vấn

100 điểm

Cho dãy số nguyên dương gồm \(n\) số hạng \(a_1, a_2, \dots, a_n\).

Yêu cầu: Có \(q\) truy vấn, mỗi truy vấn gồm hai chỉ số \(l_i, r_i\) \((1 \leq l_i \leq r_i \leq n, 1 \leq i \leq q)\) yêu cầu trả lời trong đoạn con \(a_{l_i}, a_{l_i+1}, \dots, a_{r_i}\) có bao nhiêu số hạng khác nhau.

Input

Dữ liệu vào từ tệp văn bản CAU4.INP gồm:

  • Dòng đầu tiên chứa số nguyên \(n\) \((1 \leq n \leq 10^5)\).
  • Dòng thứ hai chứa \(n\) số nguyên dương \(a_1, a_2, \dots, a_n\) \((1 \leq a_i \leq 10^9, 1 \leq i \leq n)\).
  • Dòng thứ ba chứa số nguyên \(q\) \((1 \leq q \leq 10^5)\).
  • \(q\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(l_i, r_i\) \((1 \leq l_i \leq r_i \leq n, 1 \leq i \leq q)\) tương ứng với một truy vấn.

Các số trên một dòng cách nhau đúng một dấu cách.

Output

Ghi ra tệp văn bản CAU4.OUT gồm:

  • Tương ứng với mỗi truy vấn, in ra một dòng chứa một số là kết quả của truy vấn đó.

Example

Test 1

Input
9
33 5 6 7 8 112 6 6 6
4
1 9
2 7
5 9
3 4
Output
6
5
3
2

Scoring

  • 30% số điểm có \(n \leq 10^4, q \leq 10^4\).
  • 30% số điểm có \(n \leq 10^4, q \leq 10^5\).
  • 40% số điểm có \(n \leq 10^5, q \leq 10^5\).

root

BFS cơ bản

100 điểm

Cho một đồ thị vô hướng có \(N\) đỉnh và \(M\) cạnh. Sử dụng thuật toán BFS để tìm chiều dài đường đi ngắn nhất (tính bằng số cạnh) giữa hai đỉnh \(S\) (đỉnh bắt đầu) và \(E\) (đỉnh kết thúc).

Input

  • Dòng đầu tiên là hai số nguyên dương \(N\), \(M\), \(S\), \(E\) (\(1 \leq N \leq 10^5, 1 \leq M \leq 10^5\), \(1 \leq S, E \leq N\)).
  • \(M\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(u, v\) mô tả một cạnh nối giữa đỉnh \(u\) và đỉnh \(v\).

Output

Một dòng duy nhất chứa chiều dài đường đi ngắn nhất từ \(S\) đến \(E\). Nếu không có đường đi, in ra -1.

Example

Test 1

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