시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 | 1024 MB | 9 | 5 | 5 | 100.000% |
Дадена е пермутация P на числата от 1 до N. Едно разместване сменя местата само на два съседни елемента, ако нито един от тях не е на мястото си.
Например, ако Р=5 2 4 1 3, то може да се размени всяка двойка съседни числа без (5,2) и (4,2), защото числото 2 е на позиция 2.
Напишете програма swap, която извежда поредица от размествания, след които числата се подреждат във възходящ ред: 1,2,…,N. Не е необходимо броят на разместванията да е минимален.
На първия ред стандартния вход е разположено числото N, на следващия ред е пермутация на числата от 1 до N. Пермутацията е зададена коректно и чрез последователност от размествания, всяко от които отговаря на описаното в условието правило, може да се реши поставената задача.
На един ред на стандартния изход изведете броя на разместванията M, след които числата от 1 до N се подреждат във възходящ ред. На следващите M реда изведете по две числа I и J, разделени с интервал – номерата на елементите, които се разместват.
Номерата в пермутацията започват от 1 и се увеличават отляво надясно.
Ако решенията са повече от едно, изведете което и да е от тях.
5 1 2 5 3 4
2 3 4 4 5
5 2 3 1 5 4
3 2 3 1 2 4 5