trang chủ / bài tập / messmaker

Độ lộn xộn lớn nhất

Đề bài

Mô tả

n ô được đánh số từ 1 đến n xếp thành một hàng ngang. Ban đầu ô thứ i chứa số i, tức hoán vị ban đầu là p=(1,2,,n).

Trong mỗi phút, bạn được phép chọn hai ô khác nhau và hoán đổi hai số đang nằm ở hai ô đó. Mỗi phút thực hiện nhiều nhất một lần hoán đổi, và bạn có tổng cộng k phút, nghĩa là số lần hoán đổi không vượt quá k. Bạn cũng có thể bỏ qua một số phút mà không làm gì.

Độ lộn xộn của hoán vị p được định nghĩa là số cặp chỉ số (i,j) thoả mãn i<jpi>pj.

Hãy tìm độ lộn xộn lớn nhất có thể đạt được sau không quá k lần hoán đổi.

Dữ liệu vào

Một dòng duy nhất chứa hai số nguyên nk: số lượng ô và số phút bạn có.

Dữ liệu ra

In ra một số nguyên duy nhất là độ lộn xộn lớn nhất có thể đạt được.

Ràng buộc

  • 1n105
  • 1k105

Ví dụ

Input Output Giải thích
5 2 10 Phút đầu đổi chỗ hai ô 15, phút sau đổi chỗ hai ô 24, thu được hoán vị (5,4,3,2,1). Hoán vị đảo ngược hoàn toàn này có (52)=10 cặp nghịch thế, là giá trị lớn nhất có thể.
1 10 0 Chỉ có một ô nên không tồn tại cặp (i,j) nào với i<j. Dù có bao nhiêu phút thì đáp án vẫn là 0.
4 100 6 Chỉ cần 2 lần hoán đổi là đã đảo ngược được cả hàng thành (4,3,2,1), cho 6 cặp nghịch thế. 98 phút còn lại là thừa vì không thể vượt qua (42)=6.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.400 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0