Թաքցված խնդիր
|Այս խնդիրը թաքցված է խմբագրական խրհրդի անդամի կողմից քանի որ կամ այն ոչ ճիշտ լեզվով է գրված,|կամ թեստային տվյալներն են սխալ, կամ խնդրի ձևակերպումը պարզ չէ։|

EPTKAR - Փնտրման ծառ

Երկուական փնտրման ծառը փնտրում կատարելու համար արդյունավետ տվյալների կառուցվածք է։ Երկուական փնտրման ծառում ձախ ենթածառի բոլոր տարրերի արժեքները ավելի փոքր են, իսկ աջ ենթածառի բոլոր տարրերի արժեքները ավելի մեծ են արմատի արժեքից։ Երկուական փնտրման ծառերի մասին կարող եք կարդալ այստեղ.

http://en.wikipedia.org/wiki/Binary_search_tree

Սովորաբար երկուական փնտրման ծառը կառուցվում է հաջորդաբար տարրեր ավելացվելով։ Այդ դեպքում ծառի կառուցվածքը կախված է ավելացվող տարրերի հերթականությունից։

Այս խնդրում պահանջվում է գտնել 1-ից N թվերի այնպիսի հերթականություն, որ նրանցից կառուցված ծառի բարձրությունը լինի առավելագույնը H։ Երկուական փնտրման ծառի բարձրությունը սահմանվում է հետևյալ կերպ.

1.      Հանգույց չունեցող երկուական փնտրման ծառի բարձրությունը 0 է։

2.     հակառակ դեպքում այն հավասար է ձախ ենթածառի և աջ ենթածառի բարձրություններից մեծագույնին գումարած 1։

Մի քանի դասավորություններ կարող են բավարարել այս պայմանին։ Այդ դեպքում պետք է ընտրել այն դասավորությունը, որում ավելի փոքր թվերը ավելի շուտ են գալիս։ Օրինակ, N=4, H=3 դեպքում նախընտրում ենք 1 3 2 4 հաջորդականությունը, այլ ոչ թե 2 1 4 3-ը կամ 3 2 1 4-ը։

Մուտքը.

Մուտքում տրված է երկու ամբողջ թիվ՝ N(1≤N≤10000) և H (1≤H≤30):

Ելքը.

Ելքի միակ տողում տողում պետք է արտածել N ամբողջ թվեր։ Տողի վերջում բացակ չպիտի լինի։ Եթե հնարավոր չէ կառուցել այդպիսի ծառ, հարկավոր է արտածել “Impossible.”

Օրինակներ

Մուտքը.
6 3

Ելքը.
3 1 2 5 4 6

Մուտքը.
4 1 Ելքը. Impossible.

Ավելացրեց.Andreasyan
Ամսաթիվ.2014-02-07
Ժամանակի սահմանափակումը.0.100s
Ծրագրի տեքստի սահմանափակումը.50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Լեզուներ.C CSHARP C++ 4.3.2 CPP CPP14 JAVA PAS-GPC PAS-FPC PYTHON3
Աղբյուրը.ֆիզմաթ 2014

թաքցնել մեկնաբանությունները
2014-03-25 08:37:46 albertg


Վերջին խմբագրածը. 2014-03-25 08:38:30
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.