Số đặc biệt

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]\).

Dữ liệu: Gồm một dòng chứa hai số nguyên dương \(L, R\).

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

Ví dụ:

stdin stdout
2 8 2

Ràng buộc:

  • 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.
...Xem thêm

Array and Segments (Hard version)

Bạn được cho một mảng \(a\) gồm \(n\) số nguyên. Giá trị của phần tử thứ \(i\) trong mảng là \(a_i\).

Bạn cũng được cho một tập hợp gồm \(m\) đoạn. Đoạn thứ \(j\)\([l_j, r_j]\), trong đó \(1 \le l_j \le r_j \le n\).

Bạn có thể chọn một tập con bất kỳ từ tập hợp các đoạn đã cho và giảm giá trị trên mỗi đoạn được chọn đi một đơn vị (một cách độc lập). Ví dụ, nếu mảng ban đầu \(a = [0, 0, 0, 0, 0]\) và các đoạn được cho là \([1, 3]\)\([2, 4]\), thì bạn có thể chọn cả hai đoạn đó và mảng sẽ trở thành \(b = [-1, -2, -2, -1, 0]\).

Bạn phải chọn một tập con của các đoạn đã cho (mỗi đoạn có thể được chọn tối đa một lần) sao cho nếu bạn áp dụng tập con các đoạn này vào mảng \(a\) và thu được mảng \(b\), thì giá trị \(\max(b) - \min(b)\) sẽ là lớn nhất có thể.

Lưu ý rằng bạn có thể chọn tập con rỗng.

Nếu có nhiều đáp án, bạn có thể in ra đáp án bất kỳ.

Dữ liệu vào

Dòng đầu tiên của dữ liệu vào chứa hai số nguyên \(n\)\(m\) (\(1 \le n \le 10^5, 0 \le m \le 300\)) — lần lượt là độ dài của mảng \(a\) và số lượng đoạn.

Dòng thứ hai chứa \(n\) số nguyên \(a_1, a_2, \dots, a_n\) (\(-10^6 \le a_i \le 10^6\)), trong đó \(a_i\) là giá trị của phần tử thứ \(i\) của mảng \(a\).

\(m\) dòng tiếp theo, mỗi dòng chứa hai số nguyên. Dòng thứ \(j\) trong số đó chứa hai số nguyên \(l_j\)\(r_j\) (\(1 \le l_j \le r_j \le n\)), trong đó \(l_j\)\(r_j\) là các điểm mút của đoạn thứ \(j\).

Dữ liệu ra

Trong dòng đầu tiên, in ra một số nguyên — giá trị lớn nhất có thể của \(\max(b) - \min(b)\).

Trong dòng thứ hai, in ra một số nguyên \(q\) — số lượng đoạn mà bạn chọn.

Trong dòng thứ ba, in ra \(q\) số nguyên phân biệt từ \(1\) đến \(m\) theo thứ tự bất kỳ — chỉ số của các đoạn mà bạn chọn. Nếu có nhiều đáp án, bạn có thể in ra đáp án bất kỳ.

Ví dụ

Input 1 Output 1
5 4
2 -2 3 1 2
1 3
4 5
2 5
1 3
6
2
1 4
Input 2 Output 2
5 4
2 -2 3 1 4
3 5
3 4
2 4
2 5
7
2
2 3
Input 3 Output 3
1 0
1000000
0
0

Chú thích

Trong ví dụ đầu tiên, nếu chúng ta chọn các đoạn \(1\)\(4\), mảng \(b\) sẽ trở thành \([0, -4, 1, 1, 2]\)\(\max(b) - \min(b) = 2 - (-4) = 6\).

Trong ví dụ thứ hai, nếu chúng ta chọn các đoạn \(2\)\(3\), mảng \(b\) sẽ trở thành \([2, -3, 1, -1, 4]\)\(\max(b) - \min(b) = 4 - (-3) = 7\).

Trong ví dụ thứ ba, mảng \(a\) chỉ có một phần tử nên \(\max(a) - \min(a) = 0\) và bất kể chúng ta chọn các đoạn nào đi nữa thì đáp án vẫn sẽ là \(0\).

...Xem thêm

Tìm vị trí ô tô

Timur đang di chuyển trên một trục số từ điểm \(0\) đến điểm \(n\) bằng ô tô. Ô tô bắt đầu chuyển động từ điểm \(0\) tại thời điểm phút thứ \(0\).

Trên trục số có \(k + 1\) biển báo tại các điểm \(0, a_1, a_2, \dots, a_k\). Timur biết rằng ô tô sẽ lần lượt đi qua các biển báo này tại các thời điểm tương ứng là phút \(0, b_1, b_2, \dots, b_k\). Các dãy \(a\)\(b\) là các dãy tăng nghiêm ngặt với \(a_k = n\).

Giữa hai biển báo liền kề bất kỳ, ô tô di chuyển với vận tốc không đổi. Timur có \(q\) truy vấn: mỗi truy vấn là một số nguyên \(d\). Với mỗi truy vấn, hãy tính xem ô tô mất bao nhiêu phút để đến được điểm \(d\), làm tròn xuống số nguyên gần nhất.

Dữ liệu vào

  • Dòng đầu tiên chứa một số nguyên \(t\) (\(1 \le t \le 10^4\)) — số lượng bộ dữ liệu (test case).
  • Với mỗi test case:
  • Dòng đầu tiên chứa ba số nguyên \(n, k, q\) (\(1 \le k, q \le 10^5; k \le n \le 10^9\)) — lần lượt là điểm đến cuối cùng, số lượng biển báo (không tính gốc \(0\)) và số lượng truy vấn.
  • Dòng thứ hai chứa \(k\) số nguyên \(a_1, a_2, \dots, a_k\) (\(1 \le a_i \le n; a_i < a_{i+1}; a_k = n\)).
  • Dòng thứ ba chứa \(k\) số nguyên \(b_1, b_2, \dots, b_k\) (\(1 \le b_i \le 10^9; b_i < b_{i+1}\)).
  • \(q\) dòng tiếp theo, mỗi dòng chứa một số nguyên \(d\) (\(0 \le d \le n\)) — vị trí cần tính thời gian.
  • Dữ liệu đảm bảo tổng của \(k\) trên tất cả các test case không vượt quá \(10^5\), và tổng của \(q\) trên tất cả các test case không vượt quá \(10^5\).

Dữ liệu ra

  • Với mỗi truy vấn, in ra một số nguyên duy nhất — số phút đã trôi qua cho đến khi ô tô đạt tới điểm \(d\) (đã làm tròn xuống).

Ví dụ

Input Output
4
10 1 3
10
10
0
6
7
10 2 4
4 10
4 7
6
4
2
7
1000000000 1 1
1000000000
1000000000
999999999
6 1 3
6
5
2
6
5
0 6 7
5 4 2 5
999999999
1 5 4
...Xem thêm

Số nguyên tố đặc biệt

Số nguyên tố là số nguyên dương lớn hơn \(1\) và chỉ có đúng hai ước số dương là \(1\) và chính nó. Một số nguyên \(x\) được gọi là số nguyên tố đặc biệt nếu \(x\) là số nguyên tố và số viết ngược lại của \(x\) cũng là số nguyên tố.

Ví dụ:

  • Số \(13\) là số nguyên tố đặc biệt vì \(13\)\(31\) đều là các số nguyên tố.
  • Số \(23\) không phải là số nguyên tố đặc biệt vì \(23\) là số nguyên tố nhưng \(32\) không phải là số nguyên tố.

Cho dãy số \(A\)\(N\) phần tử nguyên \(A_1, A_2, \dots, A_N\)\(Q\) truy vấn.

Yêu cầu

Với mỗi cặp chỉ số \(L, R\) (\(1 \le L \le R \le N\)) trong \(Q\) truy vấn, hãy đếm số lượng số nguyên tố đặc biệt trong đoạn con \(A_L, A_{L+1}, \dots, A_R\).

Dữ liệu vào (Standard Input)

  • Dòng 1: Ghi hai số nguyên dương \(N, Q\) (\(1 \le N \le 10^6; 1 \le Q \le 10^6\)).
  • Dòng 2: Ghi \(N\) số nguyên \(A_1, A_2, \dots, A_N\) (\(-10^7 \le A_i \le 10^7\)).
  • \(Q\) dòng tiếp theo: Mỗi dòng ghi hai số nguyên dương \(L, R\) (\(1 \le L \le R \le N\)).

Dữ liệu ra (Standard Output)

  • In ra \(Q\) dòng, mỗi dòng ghi kết quả tìm được tương ứng với từng truy vấn \(L, R\).

Ví dụ

Input Output
8 3
8 3 25 7 -5 13 2 -20
1 3
2 6
6 8
1
3
2
...Xem thêm