Կայուն տեսակավորում (Stable sorting)

Որոշ տեսակավորման ալգորիթմներ պահպանում են այն տարրերի նախնական դասավորությունը, որոնց արժեքները հավասար են։ Այդ դեպքերում ասում ենք, որ ալգորիթմը կատարում է կայուն տեսակավորում:

Պատկերացրեք, որ զանգվածի թվերն ու դրանց նախնական ինդեքսները գրենք միասին, որպեսզի տեսակավորումից հետո տեսնենք, թե որտեղ են տարրերը հասել:

Սկզբնական զանգված

(10, 0)

(12, 1)

(10, 2)

(7, 3)

(-3, 4)

(-3, 5)

(7, 6)

Կայուն տեսակավորում

(-3, 4)

(-3, 5)

(7, 3)

(7, 6)

(10, 0)

(10, 2)

(12, 1)

Ոչ կայուն տեսակավորում

(-3, 5)

(-3, 4)

(7, 3)

(7, 6)

(10, 2)

(10, 0)

(12, 1)

Կայուն տեսակավորում կատարելիս, եթե որևէ երկու տարրեր հավասար են, ալգորիթմը պահպանում է դրանց նախնական հերթականությունը։ Իսկ ոչ կայուն տեսակավորման դեպքում սկզբնական հերթականությունը կարող է փոխվել:

Առաջադրանք

Տրված է n ամբողջ թվերից կազմված զանգված , ինչպես նաև n ինդեքսներ ։ Պետք է ստեղծել նոր զանգված վերցնելով տարրերը տրված ինդեքսների հերթականությամբ: Այն է, նոր զանգվածի առաջին էլեմենտը կլինի , երկրորդը և այդպես շարունակ:

Ձեզ խնդրում են ստուգել, թե արդյոք ստացված զանգվածը համապատասխանում է սկզբնական զանգվածի կայուն տեսակավորված տարբերակին:

Մուտք

Մուտքի առաջին տողում տրված է մեկ ամբողջ թիվ n (1 ≤ n ≤

Հաջորդ տողում գրված են n ամբողջ թվեր ():

Հաջորդ տողում գրված են n ամբողջ ինդեքսներ (0 ≤ < n):

Ելք

Ծրագիրը պետք է տպի Yes, եթե տրված ինդեքսների հերթականությունը կարող էր առաջանալ կայուն տեսակավորումից, հակառակ դեպքում՝ No:

Օրինակներ

Մուտք

Ելք

8
10 12 10 7 -3 4 -3 5
4 6 5 7 3 0 2 1

Yes

8
10 12 10 7 -3 4 -3 5
6 4 5 7 3 2 0 1

No

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue