Challenger

المپیاد کامپیوتر , الگوریتم , برنامه نویسی , ترکیبیات , گراف , ....

Challenger

المپیاد کامپیوتر , الگوریتم , برنامه نویسی , ترکیبیات , گراف , ....

Challenger
طبقه بندی موضوعی
پیوندهای روزانه

پاسخ - SGU 155

دوشنبه, ۱۰ مهر ۱۳۹۱، ۰۲:۳۷ ب.ظ

متن اصلی سوال : http://acm.sgu.ru/problem.php?contest=0&problem=155

 

ترجمه :

یک درخت BST ، یک درخت ریشه دار است که هر راس در آن حداکثر دو فرزند دارد و کلید تمام راس های زیر درخت سمت چپ هر راس از کلید آن راس کوچکتر و کلید تمام راس های زیر درخت سمت راست هر راس از آن بزرگتر اند .
درخت cartesian یک نوع خاص از درخت های BST است که در آن هر راس دو کلید دارد و کلید دوم هر راس از کلید دوم همه راس هایی که در زیر درخت آن هستند کوچک تر است .

به عبارت دیگر اگر کلید اول راس شماره i را ai و کلید دوم راس شماره i را bi بنامیم شرط های زیر در درخت cartesian برقرار است :
1. به ازای هر راس j در زیر درخت سمت چپ راس i‌ :
ai>aj
2. به ازای هر راس j در زیر درخت سمت راست راس i :
ai<aj
3. به ازای هر راس j در زیر درخت راس i :
bi<bj
 
به شما n راس داده می شود ، اگه ممکن است یک درخت cartesian با این راس های بسازید آن را در خروجی چاپ کنید در غیر این صورت در خروجی اعلام کنید این کار غیر ممکن است .
 
ورودی :
در خط اول ورودی عدد n داده می شود
در n خط بعدی در خط i ام دو عدد کلید های اول و دوم راس i-1 ام داده می شود .
هیچ دو کلیدی عدد یکسان ندارد .
 
خروجی :
اگر نمی توان با راس های داده شده یک درخت cartesian ساخت در تنها خط خروجی عبارت NO را چاپ کنید در غیر این صورت در خط اول خروجی عبارت YES و در n خط بعدی در خط i ام سه عدد شماره راس پدر راس i ، فرزند سمت چپ و فرزند سمت راست راس i را چاپ کنید .
اگر راس i هیچ پدر یا هیچ فرزندی نداشت به جای عدد آنها صفر چاپ کنید .
 
ورودی نمونه :
7 
5 4
2 2
3 9
0 5
1 3
6 6
4 11

خروجی نمونه :

YES 
2 3 6
0 5 1
1 0 7
5 0 0
2 4 0
1 0 0
3 0 0

 


راهنمایی :

1 . همیشه می توان یک درخت با شرایط مسئله ساخت.

2 . راس ای که کلید دوم آن از بقیه راس ها کمتر است به عنوان ریشه قرار می گیرید .

 

شرح راه حل :

به زودی ...


کد ++C

 
موافقین ۴ مخالفین ۱ ۹۱/۰۷/۱۰
محمد مهدی جهان آرا

نظرات  (۵)

پسرجان فعالتر باش بیشتر ترجمه کن 
;)
پاسخ:
به روی چشم
منتظر کارای خوبی در وبلاگ باشید ...
http://acm.sgu.ru/forum_action.php?id=718
bebin ino wrong mide chera?
پاسخ:
برای راس دو هیچ راسی توی زیر درخت ه سمت راستش وجود نداره(با خاطر خاصیت BST) و این یعنی هیچ راسی با ki ه بزرگتر از راس دو وجود نداره ، در صورتی که این طور نیست .
:)

یه راهنمایی ه دیگه : جواب یکتا تعیین میشه :)
۰۶ آذر ۹۱ ، ۲۳:۱۸ ابوالفضل اسدی

اینم کد منه

البته به گرد پای کد استاد جهان هم نمیرسه

;)

http://pastebin.ubuntu.com/1389867/

پاسخ:
جان نسارم سلطان :D
ممنون که به اشتراک گذاشتی
جدن کدت عالیه ، از مال من خیلی خیلی بهتره :D

man ke rahnamaii nakhastam hala in dafe mohem nis.
man hanuz ba soal moshkel daram yani bara har ras age rasi hast ke betoone bache chapesh bashe bayad hatman chape oon rase ye bacheii bashe?(bara rast ham hamin)
پاسخ:
بله
na dge fahmidam nemikhad begi merC:)

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی