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

Câu 1. Số đặc biệt (8.0 điểm)

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

root

Một số nguyên dương \(K\) được gọi là số đặc biệt nếu số \(K^2 - 1\) chia hết cho \(5\).

Ví dụ:
\(4\) là số đặc biệt vì \(4^2 - 1 = 15\) chia hết cho \(5\);
\(7\) không phải là số đặc biệt vì \(7^2 - 1 = 48\) không chia hết cho \(5\).

Yêu cầu:
Cho 2 số nguyên dương \(L, R\) \((2 \le L \le R \le 10^{18})\); hãy đếm các số đặc biệt trên đoạn \([L, R]\).

Input

Vào từ tệp CAU1.INP gồm một dòng chứa hai số nguyên dương \(L, R\).

Output

Ghi ra tệp CAU1.OUT một số duy nhất là kết quả của bài toán.

Example

Test 1

Input
2 8
Output
2

Scoring

  • Có 80% số điểm có \(2 \le L \le R \le 10^6\).
  • 20% số điểm còn lại không có ràng buộc gì thêm.
Dễ

Ước chung trên đoạn con

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

root

Trong buổi huấn luyện hôm nay, các bạn sẽ được thử thách với một bài toán cổ điển nhưng đòi hỏi tư duy phân tích sâu sắc. Giả sử chúng ta có một dãy số nguyên dương \(a\) gồm \(n\) phần tử, được đánh số từ \(1\) đến \(n\). Dãy số này tượng trưng cho các "mốc" năng lượng trên một đường đua thuật toán.

Để đánh giá khả năng xử lý truy vấn và tối ưu hóa, giảng viên đưa ra \(q\) truy vấn. Mỗi truy vấn có dạng \((l, r, d)\), yêu cầu các bạn đếm xem có bao nhiêu đoạn con nằm hoàn toàn trong đoạn từ \(l\) đến \(r\) có ước chung lớn nhất (GCD) không vượt quá \(d\).

Nói cách khác, với mỗi truy vấn, các bạn cần tìm số cặp chỉ số \((u, v)\) sao cho:

  • \(l \le u \le v \le r\).
  • \(\text{gcd}(a_u, a_{u+1}, \dots, a_v) \le d\).

Input

  • Dòng đầu tiên chứa hai số nguyên \(n\) và \(q\) (\(1 \le n, q \le 2 \cdot 10^5\)).
  • Dòng thứ hai chứa \(n\) số nguyên dương \(a_1, a_2, \ldots, a_n\) (\(a_i \le 10^9\)).
  • \(q\) dòng tiếp theo, mỗi dòng chứa ba số \(l, r, d\).

Output

  • Với mỗi truy vấn, in kết quả ra trên một dòng.

Example

Test 1

Input
6 5
3 9 6 2 8 4
1 5 3
2 4 3
1 5 4
2 6 2
1 6 1
Output
12
4
12
9
6

Scoring

  • \(20\%\) số test có \(n, q \le 100\).
  • \(30\%\) số test có \(n, q \le 1000\).
  • \(30\%\) số test có \(d\) là hằng số, \(n, q \le 100000\).
  • \(20\%\) số test còn lại không có ràng buộc gì thêm.
Dễ

Chia phe

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

root

Quốc gia Zortax bao gồm \(N\) thành phố, được đánh số từ \(1\) đến \(N\), kết nối bởi \(N-1\) con đường hai chiều. Mỗi con đường nối giữa hai thành phố và cho phép di chuyển hai chiều. Toàn bộ hệ thống giao thông tạo thành một mạng lưới liên thông.

Hiện tại, Zortax được chia thành \(K\) vùng, đánh số từ \(1\) đến \(K\). Mỗi thành phố thuộc đúng một vùng. Thành phố thứ \(j\) thuộc vùng \(S_j\) \((1 \le j \le N)\). Mỗi vùng có ít nhất một thành phố.

Tổng thống đương nhiệm -- bà Zelia -- lo ngại rằng đất nước có thể bị chia rẽ bởi mâu thuẫn chính trị giữa các vùng. Zortax được gọi là có nguy cơ ly khai nếu tồn tại cách chia toàn bộ \(N\) thành phố thành hai phe \(X\) và \(Y\) sao cho thỏa mãn tất cả các điều kiện sau:

  • Mỗi thành phố thuộc hoặc phe \(X\) hoặc phe \(Y\).
  • Cả hai phe đều có ít nhất một thành phố.
  • Các thành phố trong cùng một vùng thuộc cùng một phe.
  • Có thể di chuyển giữa bất kỳ hai thành phố thuộc phe \(X\) chỉ qua các thành phố thuộc phe \(X\).
  • Có thể di chuyển giữa bất kỳ hai thành phố thuộc phe \(Y\) chỉ qua các thành phố thuộc phe \(Y\).

Để đảm bảo sự thống nhất quốc gia, tổng thống Zelia muốn thực hiện các cuộc sáp nhập vùng: mỗi lần, bà chọn hai vùng bất kỳ và gộp lại thành một vùng duy nhất (mọi thành phố của hai vùng sẽ cùng thuộc vùng mới).

Bạn hãy giúp tổng thống tính số lần sáp nhập tối thiểu cần thiết để đảm bảo Zortax không thể ly khai.

Lưu ý: nếu ban đầu chỉ có một vùng (\(K = 1\)), thì quốc gia chắc chắn không thể bị chia rẽ.

\InputFile

  • Dòng đầu tiên chứa hai số nguyên \(N\) và \(K\) \((1 \le N \le 5 \times 10^5, 1 \le K \le N)\).
  • \(N - 1\) dòng tiếp theo, mỗi dòng gồm hai số nguyên \(A_i, B_i\) \((1 \le A_i, B_i \le N)\), biểu diễn một con đường nối hai thành phố.
  • \(N\) dòng tiếp theo, dòng thứ \(j\) chứa số \(S_j\) \((1 \le S_j \le K)\) --- mã vùng của thành phố thứ \(j\).

\OutputFile

In ra một số nguyên --- số lần sáp nhập tối thiểu để Zortax không thể bị chia rẽ nữa.

\Scoring

  • Subtask 1 (20%): \(N \le 100\), \(K \le 7\)
  • Subtask 2 (33%): \(N \le 3000\)
  • Subtask 3 (20%): \(N \le 100\,000\), \(K \le 50\)
  • Subtask 4 (27%): Không có ràng buộc bổ sung

Example

Test 1

Input
5 4
1 2
2 3
3 4
3 5
1
2
1
3
4
Output
1

Test 2

Input
5 4
1 2
2 3
3 4
4 5
1
2
3
4
1
Output
0
Dễ

Sắp xếp mảng

100 điểm 42% AC 22 đã giải

root

Trong một thế giới phép thuật, các pháp sư sử dụng những viên tinh thể để tạo ra năng lượng. Mỗi viên tinh thể có một mức năng lượng riêng biệt. Nhà luyện kim thuật trẻ tuổi Aris vừa thu thập được \(n\) viên tinh thể và muốn sắp xếp chúng theo mức năng lượng từ thấp đến cao để tiện cho việc sử dụng.

Yêu cầu: Hãy giúp Aris sắp xếp \(n\) viên tinh thể theo thứ tự mức năng lượng tăng dần.

Input

  • Dòng đầu tiên chứa một số nguyên dương \(n\) (\(0 < n \le 10^5\)), là số lượng tinh thể.
  • Dòng thứ hai chứa \(n\) số nguyên dương, cách nhau bởi một dấu cách, là mức năng lượng của các tinh thể. Giá trị của các tinh thể này không vượt quá \(10^9\).

Output

  • Một dòng duy nhất chứa \(n\) số nguyên đã được sắp xếp theo thứ tự tăng dần, cách nhau bởi một dấu cách.

Example

Test 1

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