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

In các số

100 điểm 93% AC 14 đã giải

root

Viết chương trình nhập vào hai số nguyên dương \(a\) và \(b\) (\(a \leq b\)). In ra tất cả các số nằm trong đoạn \([a, b]\). Ví dụ nhập \(a = 5\), \(b = 10\) thì màn hình sẽ in ra 5 6 7 8 9 10.

Example

Test 1

Input
5 10
Output
5 6 7 8 9 10 
Dễ

Neko

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

root

Sau khi trải qua kì thi International Cat Programming Contest (ICPC) đầy căng thẳng và nhân dịp Giáng Sinh sắp đến, Neko đã quyết định sẽ quay trở về hành tinh mèo để du lịch và đón Giáng Sinh. Một trong những trò chơi truyền thống tại hành tinh mèo mỗi dịp Giáng Sinh là trò chơi "Permeowtation" với luật chơi như sau:

Ban đầu, người chơi sẽ được cho một hoán vị \(p_1, p_2, \ldots, p_n\). Ở mỗi bước, người chơi có thể hoán đổi hai phần tử liên tiếp trong hoán vị (nói cách khác, chọn một vị trí \(i\) sao cho \(1 \le i < n\) và hoán đổi hai phần tử \(p_i\) và \(p_{i+1}\)). Người chơi cần sắp xếp lại hoán vị \(p\) ban đầu với số lượng bước ít nhất có thể.

Vốn là người chơi giỏi nhất tại hành tinh mèo, Neko đã cảm thấy quá nhàm chán với trò chơi và nghĩ ra một phiên bản nâng cấp như sau:

Người chơi sẽ được cho hai hoán vị \(a\) và \(b\) với cùng độ dài \(n\). Với mỗi hoán vị có thứ tự từ điển từ \(a\) đến \(b\), người chơi sẽ xác định số bước ít nhất cần thực hiện để hoàn thành trò chơi. Cuối cùng, người chơi cần cho biết tổng số bước với tất cả hoán vị nói trên.

Neko nhận ra rằng việc hoàn thành trò chơi trên sẽ mất rất nhiều thời gian, và nhà cậu còn bao việc khác phải làm. Hãy giúp Neko hoàn thành trò chơi trên nhé.

Do đáp án có thể rất lớn, hãy in ra đáp án sau khi chia lấy phần dư cho \(10^9 + 7\).

\InputFile
Dòng đầu tiên gồm số nguyên dương \(n\) (\(1 \le n \le 200\,000\)) -- độ dài của hai hoán vị \(a\) và \(b\).

Dòng thứ hai gồm \(n\) số nguyên dương \(a_1, a_2, \ldots, a_n\) (\(1 \le a_i \le n\)) -- mô tả hoán vị \(a\).

Dòng thứ bao gồm \(n\) số nguyên dương \(b_1, b_2, \ldots, b_n\) (\(1 \le b_i \le n\)) -- mô tả hoán vị \(b\).

Dữ liệu vào đảm bảo hoán vị \(a\) có thứ tự từ điển nhỏ hơn hoặc bằng hoán vị \(b\).

\OutputFile
In ra một số nguyên duy nhất là tổng số bước cần tìm sau khi chia lấy phần dư cho \(10^9 + 7\).

\Examples
\beginexample
\exmp
3
2 1 3
3 1 2

5

\endexample
\beginexample
\exmp
5
1 2 3 4 5
1 2 3 4 5

0

\endexample

\Note
Một hoán vị độ dài \(k\) là một dãy gồm \(k\) số nguyên có giá trị từ \(1\) đến \(k\), mỗi giá trị xuất hiện đúng một lần.

Với hai hoán vị \(p_1, p_2, \ldots, p_n\) và \(q_1, q_2, \ldots, q_n\) bất kì, ta định nghĩa hoán vị \(p\) có thứ tự từ điển nhỏ hơn hoán vị \(q\) nếu tồn tại một chỉ số \(i\) (\(1 \le i \le n\)) sao cho:

  • \(p_j = q_j\) với \(1 \le j < i\)
  • \(p_i < p_j\)

Ở ví dụ 1, ta có thể biến đổi từng hoán vị như sau:

  • \([2, 1, 3] \xrightarrow{(3, 1)} [1, 2, 3]\)
  • \([2, 3, 1] \xrightarrow{(2, 3)} [2, 1, 3] \xrightarrow{(1, 2)} [1, 2, 3]\)
  • \([3, 1, 2] \xrightarrow{(1, 2)} [1, 3, 2] \xrightarrow{(2, 3)} [1, 2, 3]\)

Tổng số bước biến đổi cần tìm là \(1 + 2 + 2 = 5\).

Ở ví dụ 2, hoán vị \([1, 2, 3, 4, 5]\) đã được sắp xếp tăng dần nên ta không cần thực hiện bước biến đổi nào cả.

\Scoring

  • Subtask 1 (\(10\%\) số điểm): \(n \le 2\,000\), \(a_i = b_i\)
  • Subtask 2 (\(20\%\) số điểm): \(n \le 2\,000\), \(a_i = i\), \(b_i = N-i+1\)
  • Subtask 3 (\(30\%\) số điểm): \(n \le 2\,000\)
  • Subtask 4 (\(40\%\) số điểm): Không có giới hạn gì thêm

\endproblem

Dễ

Chọn đàn trâu cho thuê

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

staffagent

Chủ trại có \(N\) con trâu, con thứ \(i\) cày được đúng \(a_i\) đơn vị diện tích. Cần chọn một tập con các con trâu sao cho tổng diện tích bằng đúng \(S\).

Nếu không chọn được, in NO. Nếu chọn được, in YES cùng một phương án cụ thể. Vì có thể có nhiều phương án, hãy in phương án mà dãy chỉ số các con trâu được chọn (xếp tăng dần) nhỏ nhất theo thứ tự từ điển (so sánh lần lượt từ phần tử đầu tiên).

Input

  • Dòng 1: hai số nguyên \(N\) và \(S\).
  • Dòng 2: \(N\) số nguyên \(a_1, \dots, a_N\).

Output

  • Nếu không có phương án, in NO.
  • Ngược lại in ba dòng: dòng 1 là YES; dòng 2 là số con trâu được chọn; dòng 3 là các chỉ số của chúng theo thứ tự tăng dần, cách nhau bởi dấu cách.

Constraints

  • \(1 \le N \le 32\)
  • \(1 \le S \le 3.2 \times 10^{10}\)
  • \(1 \le a_i \le 10^9\)

Sample Input

5 9
4 2 6 3 1

Sample Output

YES
3
1 2 4

Explanation

Các tập có tổng 9 gồm chỉ số \(\{1,2,4\}\) (4+2+3), \(\{3,4\}\) (6+3), \(\{2,3,5\}\) (2+6+1), ... Dãy chỉ số 1 2 4 nhỏ nhất theo thứ tự từ điển.

Dễ

Cây phả hệ

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

root

Trong Học viện mật mã, các nhà nghiên cứu đang làm việc với cấu trúc dữ liệu dạng cây phả hệ để bảo vệ thông tin. Cây phả hệ này có \(N\) nút, được đánh số từ \(1\) đến \(N\), với nút \(1\) là nút gốc.

Một nhà nghiên cứu trẻ tên là Kaito được giao nhiệm vụ phân tích một loại hoán vị "Tốt" trên cây.

Một hoán vị \(p_1, p_2, \dots, p_n\) được gọi là Tốt khi và chỉ khi, với mỗi vị trí \(i\) (\(1 \le i \le n\)), ít nhất một trong các điều kiện sau được thỏa mãn:

  • Vị trí cố định: \(p_i = i\).
  • Quan hệ Tổ Tiên: Nút \(p_i\) là tổ tiên của nút \(i\).
  • Quan hệ Hậu Duệ: Nút \(p_i\) là hậu duệ của nút \(i\).

Bạn được yêu cầu giúp Kaito đếm số lượng hoán vị Tốt có độ dài \(N\) cho cây phả hệ đã cho, và in ra kết quả sau khi lấy modulo \(998\,244\,353\).

Input

  • Dòng đầu tiên chứa số nguyên \(T\) (\(1 \le T \le 5\)) --- số lượng bộ dữ liệu thử nghiệm.
  • Đối với mỗi bộ dữ liệu:

  • Dòng đầu chứa số nguyên \(N\) (\(2 \le N \le 5\,000\)) --- số lượng nút trên cây.

  • Dòng thứ hai chứa \(N - 1\) số nguyên \(a_2, a_3, \ldots, a_n\) (\(1 \le a_i \le i-1\)) --- \(a_i\) là cha trực tiếp của nút \(i\).

Output

Với mỗi bộ dữ liệu, in ra một số nguyên là số lượng hoán vị Tốt modulo \(998\,244\,353\).

Example

Test 1

Input
3
3
1 1
3
1 2
6
1 1 1 2 2
Output
3
6
20
Note
  • Trong bộ dữ liệu đầu tiên, các hoán vị Tốt là \([1,2,3]\), \([2,1,3]\), và \([3,2,1]\).
  • Trong bộ dữ liệu thứ hai, tất cả \(3! = 6\) hoán vị đều là Tốt.

Scoring

  • Subtask \(1\) (\(20\%\) số điểm) : \(N \leq 10\).
  • Subtask \(2\) (\(20\%\) số điểm) : \(N \leq 20\).
  • Subtask \(3\) (\(20\%\) số điểm) : \(a_i = 1\) với \(i = 2..N\) trong tất cả các bộ dữ liệu.
  • Subtask \(4\) (\(20\%\) số điểm) : \(N \leq 100\).
  • Subtask \(5\) (\(20\%\) số điểm) : không có ràng buộc gì thêm.
Xem thêm