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

Bạn bè

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

root

Quân vừa tham gia ICPC WF cùng \(n\) người bạn được đánh số từ \(1\) đến \(n\). Tại đây đã có \(m\) tình bạn nảy nở, tình bạn thứ \(i\) là giữa \(u_{i}\) và \(v_{i}\), các tình bạn được đánh số theo thứ tự thời gian. Hiện tại Quân chưa kết bạn với ai và anh muốn kết bạn theo cách sau:

Bước \(1\) : Nếu đã kết bạn với tất cả thì dừng.

Bước \(2\): Chọn \(x\) nhỏ nhất mà chưa kết bạn. Mở rộng quan hệ với \(x\) theo cách sau:

  • Kết bạn với \(x\).

  • \(x\) sẽ giới thiệu cho Quân các bạn bè của \(x\) theo thứ tự thời gian;

  • Quân sẽ mở rộng quan hệ với từng người một vừa được \(x\) giới thiệu, theo thứ tự. Nói cách khác, quá trình mở rộng quan hệ là một quá trình đệ quy (tìm kiếm theo chiều sâu).

Bước \(3\) : Quay lại bước \(1\).

Kết thúc quá trình, Quân đã kết bạn với tất cả mọi người. Quân sẽ tổ chức \(Q\) trò chơi, mỗi trò chơi sẽ mời những người từ \(l\) tới \(r\) tham gia. Khi \(x\) tham gia trò chơi, anh ta sẽ để ý các bạn bè của mình trong trò chơi. Nếu \(y\) là bạn của \(x\) và có tham gia trò chơi, \(x\) nghĩ rằng Quân thiên vị nếu \(y\) trở thành bạn của Đắc trước \(x\) . Nếu không có \(y\) nào như vậy, \(x\) sẽ nghĩ trò chơi này công bằng. Mức độ công bằng của trò chơi là số người nghĩ trò chơi này công bằng. Hãy giúp Quân tính toán mức độ công bằng của từng trò chơi.

 -

Input

Dòng đầu chứa \(n\) \(m\) \(Q\) \(s\) (trong đó \(s\) dùng để xử lí dữ liệu online).

\(m\) dòng tiếp theo, dòng thứ \(i\) chứa \(u_{i}\) và \(v_{i}\).

\(Q\) dòng tiếp theo, mỗi dòng chứa hai số \(x\) \(y\), khi đó \(l\) và \(r\) được tính như sau:

  • Gọi \(last\) là kết quả cho truy vấn ngay trước truy vấn này, hoặc \(last = 0\) nếu đây là truy vấn đầu tiên

  • \(l = (x + s \cdot last - 1) \% n + 1\).

  • \(r = (x + s \cdot last - 1) \% n + 1\).

  • Nếu \(l > r\) thì đổi giá trị \(l\) và \(r\).

Output

Ghi \(Q\) dòng là kết quả cho \(Q\) trò chơi.

Example

Test 1

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

Scoring

Trong tất cả các test: \(1 \leq n, m, Q, x, y \leq 10^5; 0 \leq s \leq 1\)

Có \(20\%\) số test có \(s = 0\) và mỗi người chỉ có nhiều nhất một người bạn (ngoài Quân).

Có \(20\%\) số test với mỗi người chỉ có nhiều nhất một bạn bè.

Có \(20\%\) số test với \(s = 0\).

Có \(40\%\) số test với ràng buộc gốc.

Dễ

Chỉnh hợp không lặp

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

root

Huấn luyện viên cần chọn ra \(K\) vận động viên từ tổng số \(N\) vận động viên trong danh sách. Tuy nhiên, thứ tự của \(K\) người này rất quan trọng vì nó quyết định vị trí thi đấu. Hãy sử dụng đệ quy để liệt kê tất cả các cách chọn ra \(K\) người có kể đến thứ tự (chỉnh hợp không lặp) từ tập \(N\) người.

Input

Hai số nguyên dương \(N\) và \(K\) (\(1 \leq K \leq N \leq 8\)).

Output

In ra tất cả các chỉnh hợp không lặp có \(K\) phần tử được chọn từ tập \(\{1, 2, \dots, N\}\), mỗi chỉnh hợp trên một dòng, theo thứ tự từ điển tăng dần.

Example

Test 1

Input
1 1
Output
1 

Test 2

Input
2 1
Output
1 
2 

Test 3

Input
2 2
Output
1 2 
2 1 

Test 4

Input
3 1
Output
1 
2 
3 

Test 5

Input
3 2
Output
1 2 
1 3 
2 1 
2 3 
3 1 
3 2 
Dễ

Startup

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

root

Một startup công nghệ vừa trải qua \(N\) ngày hoạt động. Doanh thu trong ngày thứ \(i\) \((1 \le i \le N)\) được ghi lại là \(A_i\) đô-la.

Quản lý của startup cần chuẩn bị báo cáo để thuyết trình với nhà đầu tư. Anh ta sẽ chọn một số ngày trong số \(N\) ngày này và trình bày biểu đồ cột thể hiện doanh thu của các ngày đã chọn theo thứ tự thời gian.

Để báo cáo gây ấn tượng hơn, anh ta sẽ chọn các ngày sao cho điểm ấn tượng là cao nhất.

Nếu anh ta chọn \(m\) ngày \((1 \le m \le N)\) với chỉ số \(p_1, p_2, \dots, p_m\) \((1 \le p_1 < p_2 < \dots < p_m \le N)\) thì điểm ấn tượng được tính như sau:

  • Ban đầu, ngày đầu tiên trong danh sách luôn được tính là một kỷ lục mới.
  • Với mỗi ngày tiếp theo trong danh sách, nếu doanh thu hôm đó lớn hơn tất cả các ngày trước đó (trong danh sách đã chọn), thì điểm ấn tượng tăng thêm \(1\).

Nói cách khác, điểm ấn tượng chính là số lần xuất hiện một mức doanh thu kỷ lục mới trong chuỗi ngày đã chọn.

Để bài thuyết trình không gượng ép, Minh chỉ chọn các ngày thoả đồng thời hai quy tắc sau:

  • Bắt buộc phải bao gồm ngày cuối cùng: \(p_m = N\).
  • Khoảng cách giữa hai ngày liên tiếp không vượt quá \(D\): với mọi \(j\) \((1 \le j \le m-1)\), ta có \(p_{j+1} - p_j \le D\).

Hãy tính điểm ấn tượng lớn nhất có thể đạt được.

Input

  • Dòng đầu chứa hai số nguyên \(N\) và \(D\) (\(D \le N \le 3 \times 10^5\)).
  • Dòng thứ hai chứa \(N\) số nguyên \(A_1, A_2, \dots, A_N\) --- doanh thu từng ngày.

Output

  • In ra một số nguyên duy nhất --- điểm ấn tượng tối đa theo các quy tắc trên.

Example

Test 1

Input
6 6
1 5 2 4 6 3
Output
4

Scoring

  • Có \(14\%\) số điểm ứng với \(N \leq 20\).
  • Có \(14\%\) số điểm ứng với \(N \leq 400\).
  • Có \(20\%\) số điểm ứng với \(N \leq 7000\).
  • Có \(12\%\) số điểm ứng với \(D = 1\).
  • Có \(40\%\) số điểm ứng không có ràng buộc bổ sung nào khác.
Dễ

Lịch thi đấu cầu lông 2

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

staffagent

Bạn Nam là một tay vợt cầu lông chuyên nghiệp. Trong năm có \(n\) giải đấu, giải thứ \(i\) diễn ra vào ngày \(a_i\) và mang lại tiền thưởng \(b_i\) cho người tham gia. Để giữ sức khoẻ, huấn luyện viên yêu cầu hai giải mà Nam đăng ký phải cách nhau ít nhất \(k\) ngày, tức là với hai giải \(i \ne j\) được chọn thì \(|a_i - a_j| \ge k\).

Hãy chọn một tập giải đấu thoả yêu cầu sao cho tổng tiền thưởng là lớn nhất và in ra tổng đó.

Input

  • Dòng đầu chứa hai số nguyên \(n\) và \(k\).
  • Dòng thứ hai chứa \(n\) số nguyên \(a_1 \le a_2 \le \dots \le a_n\) là ngày diễn ra các giải.
  • Dòng thứ ba chứa \(n\) số nguyên \(b_1, b_2, \dots, b_n\) là tiền thưởng của các giải.

Output

In ra một số nguyên là tổng tiền thưởng lớn nhất có thể nhận được.

Constraints

  • \(1 \le n \le 10^5\), \(1 \le k \le 10^9\)
  • \(1 \le a_i \le 10^9\) (không giảm dần)
  • \(1 \le b_i \le 10^9\)

Sample Input 1

6 3
2 4 5 8 9 12
7 6 6 5 10 1

Sample Output 1

24

Sample Input 2

4 30
5 10 20 40
8 3 9 1

Sample Output 2

9

Explanation

Ở ví dụ 1 chọn các ngày \(2, 5, 9, 12\) (cách nhau ít nhất 3 ngày): \(7+6+10+1=24\). Ở ví dụ 2, \(k=30\) nên chỉ chọn được ngày 5 và 40 (tổng 9) hoặc riêng ngày 20 (tổng 9).

Xem thêm