Rəqəmsal təhlükəsizlik anbarı sistemi iç-içə şifrələmə konteynerləri istifadə edir, burada daha aşağı səviyyəli şifrələmələr daha yüksək səviyyəli şifrələmələrin içərisinə yerləşdirilir. Hər bir təhlükəsizlik anbarı deşifrə edilə bilər ki, içərisində daha aşağı şifrələmə səviyyəsinə malik konteyner aşkar edilsin, bu da öz növbəsində başqa bir konteyner ehtiva edə bilər və s.
Korporativ məlumat mərkəzi yaxınlarda oxşar şifrələmə protokollarına malik bir neçə anbar dəstinin köçürüldüyü sistem miqrasiyasını tamamladı. Hər dəst yalnız iç-içə şifrələmə səviyyələrinin sayına görə fərqlənirdi. Təəssüf ki, miqrasiya prosesi zamanı avtomatlaşdırılmış skript nasazlığa düşdü və bütün anbar dəstlərini ayıraraq bütün fərdi şifrələmə konteynerlərini bir ardıcıllığa yerləşdirdi.
Ardıcıllıqda n konteyner var, hər birinin tam ədədi şifrələmə səviyyəsi var. Siz anbar dəstlərini yenidən toplamaq məcburiyyətindəsiniz, nə dəstlərin sayını, nə də hər birindəki konteynerlərin sayını bilmədən. Yalnız məlumdur ki, hər tam dəst 1-dən müəyyən m rəqəminə qədər ardıcıl şifrələmə səviyyələrinə malik konteynerlərdən ibarətdir, bu rəqəm müxtəlif dəstlər üçün dəyişə bilər.
Toplama zamanı aşağıdakı qaydalara riayət etməlisiniz:
Siz yalnız daha yüksək şifrələmə səviyyəsinə malik konteynerin içinə konteyner və ya konteyner qrupunu yerləşdirə bilərsiniz.
İki konteyner qrupunu yalnız ardıcıllıqda yan-yana olduqda birləşdirə bilərsiniz.
Konteyner bir qrupun üzvü olduqda, onu başqa bir qrupa köçürmək və ya qrupdan daimi ayırmaq mümkün deyil. Yalnız iki qrupun birləşdirilməsi zamanı müvəqqəti ayırmaq olar.
Prosessor vaxtınız çox dəyərlidir, ona görə də toplama prosesini mümkün qədər tez tamamlamaq istəyirsiniz. Vaxt tələb edən yeganə əməliyyat konteynerin deşifrə edilməsi və sonradan yenidən şifrələnməsidir, buna görə də bu əməliyyatların sayını minimuma endirmək istəyirsiniz. Məsələn, [1, 2, 6] və [4] qruplarını birləşdirərkən deşifrələmə əməliyyatlarının (və müvafiq olaraq yenidən şifrələmə əməliyyatlarının) ən az sayı ikidir, çünki yalnız 6 və 4 şifrələmə səviyyəli konteynerləri deşifrə etmək kifayətdir. [1, 2, 5] və [3, 4] qruplarını birləşdirərkən üç deşifrələmə kifayətdir.
Bütün anbar dəstlərinin toplanması üçün lazım olan deşifrələmə əməliyyatlarının ən az sayını hesablayan bir proqram yazın.
Giriş məlumatları bir testdən ibarətdir. Test iki sətirdən ibarətdir. Birinci sətir ardıcıllıqda ayrı-ayrı dayanan konteynerlərin sayını göstərən bir tam ədəd n (1 ≤ n ≤ 500) ehtiva edir. İkinci sətir ardıcıllıqda yerləşdirildikləri qaydada n təbii ədəd ehtiva edir — konteynerlərin şifrələmə səviyyələri. Konteynerlərin şifrələmə səviyyələri 1 ilə 500 arasında dəyişir.
Anbar dəstlərinin toplanması üçün lazım olan deşifrələmə əməliyyatlarının ən az sayını çıxarın. Əgər toplama mümkün deyilsə (bəzi konteynerlər miqrasiya zamanı itirilmiş ola bilər), impossible sözünü çıxarın.
Nümunə 1