Алмастыруды минималды сорттау


Шешімді жөнелту

Ұпайлар: 100 (partial)
Уақыт шектеуі: 2.0s
Жад шектеуі: 512M

Author:
Problem type
Рұқсат етілген тілдер
Assembly, Awk, Brain****, C, C++, Java, Pascal, Perl, Python, Sed, Text

Алмастыру — бұл ұзындығы \(n\) болатын, 1-ден \(n\)-ге дейінгі бүтін сандардың тізбегі, тізбекте барлық сандар бір реттен кездеседі. Мысалы, [1], [4,3,5,1,2], [3,2,1] — алмастырулар, ал [1,1], [4,3,1], [2,3,4] — емес.

Ұзындығы \(n\) болатын \(p\) алмастыруы берілген. Сізге \(n-1\) операция жасауға рұқсат етіледі, олардың \(i\)-сы \(p_i\) және \(p_{i+1}\) екі көршілес элементті орын ауыстырумен алмастыруды өзгертеді. Әр \(i\) деген операцияны бір реттен артық қолдануға болмайды және операцияны кез келген ретпен қолдануға болады.

Сізге \(q\) сұрау берілген. Әр сұрауда \(p_x\) және \(p_y\) екі элемент орын ауыстырылады. Бастапқы алмастыру үшін және әр сұраудан кейін қазіргі алмастыруды сорттау үшін қажетті рұқсат етілген операциялардың минималды санын анықтау қажет, немесе сорттау мүмкін емес болса, \(-1\) шығару керек.

Енгізу

Бірінші жолда бір бүтін сан \(n\) \((2 \leq n \leq 10^6)\) — алмастырудың ұзындығы.

Екінші жолда \(n\) түрлі бүтін сандар \(p_1, p_2, \dots, p_n\) — \(1\)-ден \(n\)-ге дейінгі сандардың алмастыруы.

Үшінші жолда бір бүтін сан \(q\) \((0 \leq q \leq 10^6)\) — сұраулар саны.

Келесі \(q\) жолда екі бүтін сан \(x\) және \(y\) \((1 \leq x, y \leq n, x \neq y)\) — орын ауыстыру қажет элементтердің индекстері.

Шығару

\(q+1\) жолды шығарыңыз, әр жолда бір сан — қазіргі алмастыруды сорттау үшін қажетті рұқсат етілген операциялардың минималды саны, немесе \(-1\), егер бұл мүмкін болмаса.

Бағалау жүйесі

Бұл тапсырмада \(7\) ішкі есеп бар.

Ішкі есеп Қосымша шектеулер Ұпайлар
\(0\) Мысалдар \(0\)
\(1\) \(n=3, q = 0\) \(5\)
\(2\) \(n \leq 9\), \(q \leq 10\) \(11\)
\(3\) Барлық \(i\) үшін \(p_i=i\). Сонымен қатар барлық \(x_1, x_2, ..., x_q, y_1, y_2, ..., y_q\) сандар әртүрлі \(17\)
\(4\) \(n, q \leq 500\) \(9\)
\(5\) \(n, q \leq 10000\) \(12\)
\(6\) \(n, q \leq 200000\) \(20\)
\(7\) \(26\)

Мысалдар

Енгізу 1
4
2 1 4 3
3
1 2
3 2
3 4
Жауап 1
2
1
2
-1

Ескертпелер

Бастапқы алмастыру: [2, 1, 4, 3] \(p_1\) және \(p_2\) орын ауыстырамыз, нәтижесінде: [1, 2, 4, 3] \(p_3\) және \(p_4\) орын ауыстырамыз, нәтижесінде: [1, 2, 3, 4]

Бірінші сұраудан кейін: [1, 2, 4, 3], \(p_3\) және \(p_4\) орын ауыстырамыз, нәтижесінде: [1, 2, 3, 4]

Екінші сұраудан кейін: [1, 4, 2, 3], \(p_2\) және \(p_3\) орын ауыстырамыз, нәтижесінде: [1, 2, 4, 3], \(p_3\) және \(p_4\) орын ауыстырамыз, нәтижесінде: [1, 2, 3, 4]

Үшінші сұраудан кейін: [1, 4, 3, 2] және бұл алмастыруны сорттау мүмкін емес.


Пікірлер

Қазіргі уақытта ешқандай пікір жоқ.