Бодолт илгээх | Бүх бодолтууд | Шилдэг бодолтууд | Жагсаалт руу буцах |
RGB7736 - Бараг л эрэмбэлэгдсэн |
Өгөгдсөн тоон дарааллыг өсөхөөр эрэмбэлэхийн тулд чи дараах үйлдлүүдийн аль нэгийг нэг удаа хэрэглэх эрхтэй.
2 элементийн байрыг солих. swap
Тодорхой хэсгийг урвуугаар нь сольж болно. reverse
Хэрвээ 2 үйлдлийн альныг нь ч хийсэн болж байвал солих буюу swap-г сонгоно.
Жишээлбэл
{2, 3, 5, 4} гэсэн дараалал байвал {4, 5} н байрыг солиод өсөхөөр эрэмбэлж болно.
{5, 4} дараалж байгаа учир урвуугаар нь сольсон ч болно гэхдээ. Swap-ыг л сонгоно.
Оролт
Дарааллын урт n өгөгдөнө. 2 <= n <= 10^5.
Дараагийн мөрөнд n ширхэг тоо зайгаар тусгаарлагдан өгөгдөнө. 0 <= дараалал дахь тоо <= 10^6.
Гаралт
Хэрвээ дараалал анхнаасаа эрэмбэлэгдсэн байвал yes хэвлэнэ. Өөр юм хэвлэхгүй.
Эрэмбэлэгдэх боломжтой бол эхний мөрөнд yes гэж хэвлэнэ.
Дараагийн мөрөнд swap гэж хэвлэх бол swap гэж хэвлээд дарааллын хэд, хэд дэх тоог сольж байгааг зайгаар тусгаарлан хэвлэнэ.
reverse гэж хэвлэх бол reverse гэж хэвлээд дарааллын хэдээс хэд хүртэлх тоог урвуугаар нь сольж байгааг зайгаар тусгаарлан хэвлэнэ.
Харин эрэмбэлэх боломжгүй бол no гэж хэвлэнэ.
Жишээ
Оролт 1
2
4 2
Гаралт 1
yes
swap 1 2
Тайлбар 1
1 болон 2 дахь тооны байрыг сольсон.
Оролт 2
3
3 1 2
Гаралт 2
no
Тайлбар 2
Бодлогын нөхцөлөөр эрэмбэлэх боломжгүй.
Оролт 3
6
1 5 4 3 2 6
Гаралт 3
yes
reverse 2 5
Тайлбар 3
Дарааллын 2 дахь тооноос 5 дахь тоо хүртлэх тоонуудыг урвуугаар нь солино.
Орчуулсан : Дархан-Уул аймгийн Монгол-Оюу сургуулийн 11.1 ангийн сурагч Э.Цэлмэг
Нэмсэн: | Bataa |
Огноо: | 2020-03-13 |
Хугацааны хязгаарлалт: | 1s |
Эх кодын хэмжээний хязгаарлалт: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Програмчлалын хэлүүд: | ADA95 ASM32 ASM64 BASH BF C NCSHARP CSHARP C++ 4.3.2 CPP C99 CLPS LISP sbcl LISP clisp D ERL FORTRAN HASK ICON ICK JAVA JS-RHINO JULIA LUA NEM NICE OCAML PAS-GPC PAS-FPC PERL PHP PIKE PRLG-swi PYTHON PYPY3 PYTHON3 RUBY SCALA SCM guile ST TCL WHITESPACE |
Эх сурвалж: | https://www.hackerrank.com/challenges/almost-sorted/problem |