Перестirməni tapın
Verilmiş ( iki qüvvəti) ədədlərindən ibarət bir permütasiya var. Permütasiyadakı elementlərin sırası sizə məlum deyil.
Permütasiya, -dən -ə qədər olan tam ədədlərin uzunluğu olan bir ardıcıllığıdır və burada bütün ədədlər yalnız bir dəfə rast gəlinir. Məsələn, , , permütasiyalardır, lakin , , deyil.
Həmçinin belə bir sorğu var: siz uzunluğunda massivini verirsiniz, burada (qeyd edin ki, mütləq permütasiya deyil). Cavab olaraq, aşağıdakı qaydaya görə yaradılan uzunluğunda massivini alırsınız:
c = sıfırlardan ibarət n uzunluğunda massiv for i = 1 to n: if p[a[i]] > p[i]: c[a[i]] += 1 c-ni qaytar
Sizdən tələb olunan, verilmiş permütasiyanı tapmaqdır. Maksimum sorğu sayını "Qiymətləndirmə" bölməsində baxın.
Giriş verilənləri
Birinci sətir iki tam ədəd və () ehtiva edir — verilənlər dəstlərinin sayı və hər bir verilənlər dəstində istifadə edilə biləcək maksimum sorğu sayı.
Qarşılıqlı təsir
Hər bir verilənlər dəsti üçün əvvəlcə bir tam ədəd () oxuyun — permütasiyadakı elementlərinin sayı.
Zəmanət verilir ki, iki qüvvətidir (yəni elə bir tam qeyri-mənfi ədədi var ki, ).
Sorğu etmək üçün «1 ...» () çıxış edin.
Sorğuya cavab olaraq, münsiflər proqramı şərtdəki qaydaya görə əldə edilən massivini belə bir formatda çıxış edəcək: « ...».
Sorğunu çıxış etdikdən sonra yeni sətir simvolunu çıxış etməyi və çıxış buferini sıfırlamağı unutmayın. Əks halda, Vaxt limiti aşdı
qərarını alacaqsınız. Buferi sıfırlamaq üçün istifadə edin:
C++-da
fflush(stdout)
və yacout.flush()
;Java-da
System.out.flush()
;Pascal-da
flush(output)
;Python-da
stdout.flush()
;
digər dillər üçün sənədlərə baxın.
Qeyd edin ki, əgər sorğunuz etibarsızdırsa (sorğu limiti aşılmış və ya giriş massivi məhdudiyyətlərə uyğun gəlmir), interaktor «-1» çıxış edəcək və işini dayandıracaq. Əgər «-1» oxusanız, dərhal proqramınızı dayandırın ki, Yanlış cavab
qərarını alasınız, əks halda təsadüfi bir qərar ala bilərsiniz.
Permütasiyanı tapdığınız zaman «2 ...» çıxış edin.
Bundan sonra, əgər bu son verilənlər dəsti idisə, proqramınızı dayandırmalısınız, əks halda növbəti verilənlər dəsti ilə davam etməlisiniz.
Nümunələr
1 256 4 0 1 1 1
1 3 2 4 2 2 1 4 2 3
Qeyd
Birinci sorğudan olduğunu öyrəndik.
Beləliklə, axtarılan permütasiya belədir: .
Qiymətləndirmə
— proqramınızın istifadə edə biləcəyi maksimum sorğu sayıdır.
( bal)
( bal)
( bal)
( bal)
( bal)
(maksimum bal) ; — bir verilənlər dəstində istifadə etdiyiniz maksimum sorğu sayıdır. Bu test üçün nəticə belə olacaq:
bal, əgər ;
bal, əgər ;
bal, əgər ;