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

Cuộc thi đào mỏ của robot BK

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

root

Tại thành phố công nghệ cao BKNation, tỷ phú BK tổ chức một cuộc thi đào mỏ dành cho \(n\) robot tinh nhuệ do anh phát triển. Mỗi robot \(i\) được trang bị một bộ khoan với sức mạnh \(a_i\) (là một số nguyên dương).

Trong phần thi "Đào mỏ đồng đội", các robot được xếp thành một hàng thẳng. Ban tổ chức yêu cầu chọn ra một đoạn liên tiếp từ vị trí \(l\) đến \(r\) \((1 \le l \le r \le n)\) sao cho:

  • Tồn tại một robot thủ lĩnh tại vị trí \(j\) \((l \le j \le r)\), và
  • Mọi robot trong đoạn từ \(l\) đến \(r\) đều có sức khoan chia hết cho sức khoan của thủ lĩnh.

Các robot có thể tạo nhiều tổ đội khác nhau, nhưng BK chỉ quan tâm đến những tổ đội có khoảng cách \(r - l\) lớn nhất (độ dài đội hình lớn nhất trừ đi 1).

Nhiệm vụ của bạn: Hãy tìm tất cả các chỉ số \(l\) thỏa mãn điều kiện tổ đội như trên và có \(r - l\) là lớn nhất. In ra tổng số tổ đội hợp lệ như vậy, độ dài lớn nhất \(r - l\), và danh sách các chỉ số \(l\) tương ứng theo thứ tự tăng dần.

Input

  • Dòng đầu chứa số nguyên \(n\) \((1 \le n \le 5 \cdot 10^5)\) --- số lượng robot.
  • 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ức khoan của từng robot.

Output

  • Dòng đầu tiên in ra hai số nguyên \(k\) và \(d\) --- số lượng tổ đội hợp lệ và độ dài lớn nhất \(r - l\).
  • Dòng thứ hai in ra \(k\) số nguyên --- các chỉ số \(l\) tương ứng, theo thứ tự tăng dần.

Example

Test 1

Input
5
4 6 9 3 6
Output
1 3
2 

Scoring

  • Có \(30\%\) số test tương ứng với \(30\%\) số điểm có \(n \leq 1000\).
  • Có \(30\%\) số test tương ứng với \(30\%\) số điểm có \(a_i = 2^k\).
  • \(40\%\) số test tương ứng với \(40\%\) số điểm còn lại không có ràng buộc gì thêm.
Dễ

Ước mơ của Quân

100 điểm 67% AC 7 đã giải

root

Trên hành tinh Sao Hoả, có một cậu bé tên Quân đang sống cùng với người bố của mình. Quân rất ngưỡng mộ bố và luôn mong ước được trưởng thành nhanh chóng để có thể làm được những việc vĩ đại như bố. Quân muốn biết bao nhiêu năm nữa thì tuổi của bố sẽ gấp đôi tuổi của Quân.

Bạn hãy viết chương trình nhập vào tuổi hiện tại của bố và tuổi hiện tại của Quân. Sau đó, tính toán và in ra màn hình số năm tối thiểu cần thiết để tuổi của bố sẽ gấp đôi tuổi của Quân.

Input

Dữ liệu vào gồm hai số nguyên dương trên một dòng, cách nhau bởi dấu cách:

  • \(A\): Tuổi hiện tại của bố (\(1 \le A \le 1000\)).
  • \(B\): Tuổi hiện tại của Quân (\(1 \le B \le 1000\)).

Đảm bảo rằng tuổi của bố luôn lớn hơn tuổi của Quân (\(A > B\)).

Output

In ra một số nguyên duy nhất là số năm cần chờ để tuổi bố gấp đôi tuổi Quân.

Example

Test 1

Input
30 5
Output
20

Test 2

Input
40 20
Output
0
Dễ

Số số chia hết cho 3

100 điểm 85% AC 17 đã giải

root

Với \(a\) và \(b\) là hai số nguyên được nhập vào từ bàn phím. Đếm số lượng các số chia hết cho \(3\) trong phạm vi từ \(a\) đến \(b\). Đưa ra màn hình kết quả là số lượng đếm được.

Input

Gồm một dòng chứa hai số nguyên dương \(a\) và \(b\). \((1 \leq a \leq b \leq 10^6)\).

Output

Một số nguyên là kết quả tìm được.

Example

Test 1

Input
1 12
Output
4
Dễ

Quân đi dạo

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

staffagent

Sau một thời gian sống ở Sài Gòn, Quân bắt đầu có thói quen đi dạo buổi chiều để thư giãn và khám phá khu mình đang sống. Khu phố của Quân được thiết kế như một mạng lưới đường đi đơn giản, không có vòng lặp — hay còn gọi là một đồ thị cây, với \(n\) khu vực và \(n - 1\) đường đi giữa các khu vực.

Quân không muốn đi dạo quá ngắn vì không thư giãn được, cũng không muốn đi quá xa vì còn phải về sớm làm bài tập. Vì vậy, Quân chỉ quan tâm đến những hành trình có độ dài từ \(k_1\) đến \(k_2\) đoạn đường.

Một hành trình được tính là hợp lệ nếu nó là một đường đi (không trùng đỉnh) trên cây và có số cạnh nằm trong khoảng \([k_1, k_2]\).

Yêu cầu: Hãy giúp Quân đếm số lượng hành trình phân biệt thỏa mãn điều kiện trên.

Input

  • Dòng đầu tiên chứa \(3\) số nguyên \(n, k_1, k_2\) (\(1 \le k_1 \le k_2 \le n \le 3 \cdot 10^5\)).
  • Sau đó là \(n - 1\) dòng, mỗi dòng chứa \(2\) số nguyên \(a\) và \(b\) (\(1 \le a, b \le n\)) mô tả một đường đi giữa hai khu vực \(a\) và \(b\).

Output

In ra số hành trình thỏa mãn.

Scoring

  • Subtask 1: \(n \le 5000\).
  • Subtask 2: Cây có dạng đường thẳng.
  • Subtask 3: \(n \le 10^5\).
  • Subtask 4: \(n \le 3 \cdot 10^5\).

Sample Input 1

5 2 3
1 2
2 3
3 4
3 5

Sample Output 1

6

Notes

Hành trình \((u, v)\) và \((v, u)\) chỉ được tính một lần.

Xem thêm