- محدودیت زمان: ۲ ثانیه
- محدودیت حافظه: ۲۵۶ مگابایت
فرض کنید یک درخت دودویی با ارتفاع $h$ و تعداد $2h$ گره برگ داریم. هر گره درخت نیز دارای یک مقدار میباشد. تعریف میکنیم:
- اگر گره $x$ برگ باشد، $\alpha (x)$ برابر است با مجموعه شامل گره $x$ و اجدادش تا ریشه درخت.(به همراه ریشه درخت)
- اگر $x$ و $y$ دو گره مجزا باشند، $\alpha (x,y)$ برابر است با اجتماع $\alpha (x)$ و $\alpha (y)$
- تابع $f(x,y)$ حاصل جمع عناصر $\alpha (x,y)$ را میدهد.
الگوریتمی ارائه دهید که برای یک درخت دودویی کامل دو گره برگ $x^$ و $y^$ را که مقدار $f(x^ * ,y^ * )$ برای آنها حداکثر است را پیدا کند و $f(x^ * ,y^ * )$ را به عنوان خروجی برگرداند.
ورودی
یک عدد $m$ که تعداد نمونههای مسئله را بیان میکند. سپس $2m$ رشته که با زیر رشته pre:
و یا post:
شروع میشوند و هرکدام نشاندهندهی دنبالهی prefix
و یا postfix
نمونه خود میباشند.
$$ 1 \le m \le 6$$
خروجی
برای هر نمونه ورودی یک عدد که نشاندهندهی $f(x^ * ,y^ * )$ میباشد.
مثال
ورودی نمونه
1
pre: 36, 21, 15, 10, 19, 30, 20, 14, 6, 11, 5, 9, 10, 2, 7
post: 10, 19, 15, 20, 14, 30, 21, 5, 9, 11, 2, 7, 10, 6, 36
خروجی نمونه
141
ارسال پاسخ برای این سؤال