trang chủ / đề bài / petrperm

Hoán vị của Petr

Đề bài

Mô tả

Có hai cách sinh một hoán vị ngẫu nhiên độ dài n. Cả hai đều bắt đầu từ hoán vị đơn vị 1,2,…,n, sau đó lặp lại nhiều lần thao tác: chọn ngẫu nhiên đều một cặp vị trí khác nhau và đổi chỗ hai phần tử ở hai vị trí đó.

  • Cách của Petr thực hiện đúng 3n lần đổi chỗ.
  • Cách của Alex thực hiện đúng 7n+1 lần đổi chỗ.

Cho một hoán vị được sinh theo một trong hai cách trên, hãy cho biết nó được sinh bằng cách nào.

Mọi test (trừ các ví dụ) được tạo như sau: chọn n, chọn ngẫu nhiên một trong hai cách, rồi sinh hoán vị bằng cách đó. Với các ví dụ, ràng buộc n≥103 không được đảm bảo, nhưng chương trình vẫn phải in đúng đáp án.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên n.
  • Dòng thứ hai chứa n số nguyên phân biệt trong đoạn [1,n], là hoán vị cần xét.

Dữ liệu ra

In Petr nếu hoán vị được sinh theo cách của Petr, ngược lại in Um_nik nếu nó được sinh theo cách của Alex.

Ràng buộc

  • 103≤n≤106

Ví dụ

Input Output Giải thích
5
2 4 5 1 3
Petr Hoán vị này có thể nhận được từ hoán vị đơn vị sau đúng 3·5=15 lần đổi chỗ, ví dụ minh hoạ nên n<103.
5
2 3 1 4 5
Um_nik Hoán vị này có thể nhận được từ hoán vị đơn vị sau đúng 7·5+1=36 lần đổi chỗ.

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.402 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.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0