برای آشنایی با قالب صورت سوال در Quera اینجا را مشاهده کنید و برای آشنایی با نحوهی کار با ورودی و خروجی استاندارد (stdin و stdout) در زبانهای مختلف، اینجا را ببینید.
در مورد سوالات پروژهای میتوانید انتخاب کنید که کدتان را به یکی از زبانهای پایتون یا جاوا بزنید و در سوال مربوطه میتوانید راهحلتان را ارسال کنید.
در کارت گرافیک برای بالا بردن سرعت، پردازش بخشهای مختلف به صورت موازی انجام میشود. این پردازشها
را میتوان به شکل یک درخت نشان داد. در این سوال به پردازش درختی از توابع میپردازیم.
به شما یک درخت دودویی از توابع به شکل زیر داده می شود.
هر یال جهتدار به این معناست که تابعی که یال از آن خارج شده باید قبل از تابعی که یال به آن وارد شده
محاسبه شود. (یا میتوان گفت تابع دوم برای انجام محاسباتش نیاز به خروجی تابع اول دارد). توابع در سه لیست
fs
و gs
و hs
از طریق کلاس Functions
به شما داده میشوند (برای مثال، f[0]
همان است). در ضمن توجه داشته باشید که تمام توابع بدون آرگومان ورودی هستند.
فایل Source را دانلود کرده و محتوای آن را ببینید و متد solve
را مطابق با توضیحات زیر پیادهسازی کنید.
شما باید این درخت را به ترتیب زیر پردازش کنید:
دقت کنید که محاسبات هر مرحله (هر طبقه درخت) باید به صورت همزمان انجام شود. (برای مثال و باید همزمان محاسبه شوند).
با اجرای متد main
از کلاس Main
خروجی زیر یکی خروجیهای صحیح محتمل است.
توجه داشته باشید که تمامی F
ها قبل از G
ها و تمامی G
ها قبل از H
ها چاپ میشود.
یک فایل zip که وقتی آن را باز میکنیم، فقط فایل ThreadSolution.java را ببینیم.