Ուղարկել | Բոլոր լուծումները | Լավագույն լուծումները | Վերադառնալ ցուցակին |
MEC3ANK - Մեծ եռանկյուն |
Դուք իհարկե գիտեք, թե ինչ պայմանների դեպքում և ինչպես կարելի է տրված երեք փայտիկներով /հատվածներով/ եռանկյուն կառուցել: Այժմ Ձեր առաջադրանքը քիչ այլ է: Ունեք N հատ փայտիկ: Դարձյալ պիտի կառուցեք եռանկյուն, սակայն նախ որոշ փայտիկներ հաջորդաբար իրար կցելով պիտի կառուցեք եռանկյան երեք կողմերը, ապա դրանցով կառուցեք մի մեծ եռանկյուն: Բոլոր N փայտիկները մասնակցելու են եռանկյան կառուցման մեջ: Այսպիսով, տրված N փայտիկների հավաքածուն պետք է տրոհել երեք խմբի, ամեն խմբի հատվածները կցելով ստանալ մի հատված, ու ստացված երեք հատվածներով կառուցել եռանկյուն: Եռանկյունը պիտի լինի չվերասերված, այսինքն ունենա դրական մակերես:
Մուտքը
Առաջին տողում գրված է միակ N բնական թիվը - փայտիկների քանակը (1 <= N <= 16000): Երկրորդ տողում գտնվում են N հատ բնական թվեր - փայտիկների երկարությունները:
Երաշխավորվում է, որ փայտիկների երկարությունների գումարը չի գերազանցում 1 000 000 000-ը:
Ելքը
Եթե խնդիրը լուծում չունի, ապա ելքային ֆայլի առաջին տողում արտածեք “no” բառը (առանց չակերտների): Հակառակ դեպքում առաջին տողում արտածեք “yes” բառը, իսկ հաջորդ երեք տողերում արտածեք փայտիկներից եռանկյուն կառուցելու որևէ եղանակ: Երեք տողերից յուրաքանչյուրը պիտի նկարագրի կառուցվող եռանկյան որևէ կողմը: Ամեն տողում սկզբում գրվում է փայտիկների քանակը, որոնցից կազմվում է այդ կողմը, ապա փայտիկների երկարությունները: Ամեն մի փայտիկ, իհարկե, կարելի է օգտագործել միայն մեկ անգամ:
Եթե կա տրված փայտիկներից եռանկյուն պատրաստելու մի քանի եղանակ, ընտրեք որևէ մեկը:
Օրինակներ
Մուտքը. 5
1 2 3 4 5
Ելքը. yes
2 4 3
1 5
2 1 2
Մուտքը.
5
1 2 3 4 10
Ելքը
no
Ավելացրեց. | Andreasyan |
Ամսաթիվ. | 2011-05-15 |
Ժամանակի սահմանափակումը. | 0.100s |
Ծրագրի տեքստի սահմանափակումը. | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Լեզուներ. | C CSHARP C++ 4.3.2 CPP CPP14 JAVA PAS-GPC PAS-FPC PYTHON3 |
Աղբյուրը. | Armenian OI, 2011 |