Phá tính sắp xếp của mảng

Đề bài

Mô tả

Cho mảng a gồm n số nguyên không âm, được đánh chỉ số từ 1 đến n.

Mảng được gọi là đã sắp xếp nếu thỏa mãn ít nhất một trong hai điều kiện:

  1. a1a2an (không giảm), hoặc
  2. a1a2an (không tăng).

Bạn phải thực hiện đúng một phép hoán đổi hai phần tử ở hai vị trí khác nhau ij với điều kiện aiaj (không được hoán đổi hai giá trị bằng nhau, ngay cả khi chúng ở các vị trí khác nhau). Bắt buộc phải thực hiện phép hoán đổi, dù mảng ban đầu có thỏa mãn yêu cầu hay không.

Hãy tìm một cặp vị trí (i,j) sao cho sau khi hoán đổi, mảng không còn ở trạng thái đã sắp xếp; hoặc thông báo rằng không tồn tại cặp như vậy.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n.
  • Dòng thứ hai chứa n số nguyên không âm a1,a2,,an cách nhau bởi dấu cách.

Dữ liệu ra

In ra hai số nguyên ij (1i,jn, ij) — chỉ số của hai vị trí cần hoán đổi. Nếu có nhiều cặp thỏa mãn, in ra bất kỳ cặp nào.

Nếu không tồn tại cặp vị trí nào thỏa mãn, in ra 1.

Ràng buộc

  • 1n105
  • 0ai109

Ví dụ

Input Output Giải thích
1
1
-1 Không thể chọn hai vị trí khác nhau.
2
1 2
-1 Hoán đổi cho mảng [2,1], vẫn ở trạng thái đã sắp xếp (không tăng).
4
1 2 3 4
1 2 Hoán đổi vị trí 12 được mảng [2,1,3,4] — không tăng và cũng không giảm.
3
1 1 1
-1 Mọi cặp vị trí đều có giá trị bằng nhau, không được phép hoán đổi.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0