برای آشنایی با قالب صورت سوال در Quera اینجا را مشاهده کنید و برای آشنایی با نحوهی کار با ورودی و خروجی استاندارد (stdin و stdout) در زبانهای مختلف، اینجا را ببینید.
در مورد سوالات پروژهای میتوانید انتخاب کنید که کدتان را به یکی از زبانهای پایتون یا جاوا بزنید و در سوال مربوطه میتوانید راهحلتان را ارسال کنید.
در کارت گرافیک برای بالا بردن سرعت پردازش بخشهای مختلف به صورت موازی انجام میشود. این پردازشها را میتوان به شکل یک درخت نشان داد. در این سوال به پردازش درختی از توابع میپردازیم. به شما یک درخت دودویی از توابع به شکل زیر داده میشود.
هر یال جهتدار به این معناست که تابعای که یال از آن خارج شده باید قبل از تابعای که یال به آن وارد شده محاسبه شود. (یا میتوان گفت تابع دوم برای انجام محاسبتش نیاز به خروجی تابع اول دارد). توابع در سه لیست
f
و g
و h
در فایل functions.py
قرار دارند.(برای مثال f[0]
همان است.) (همهی توابع بدون آرگومان هستند برای مثال f[0]()
تابع را صدا میکند.)
شما باید با ۴ ترد به نامهای 1
و 2
و 3
و 4
این درخت را به ترتیب زیر محاسبه کنید.
1
و 2
و 3
و 4
باشد.دقت کنید که محاسبات هر مرحله (طبقهی درخت) باید به صورت همزمان انجام شود. (برای مثال و باید همزمان محاسبه شوند)
از شما میخواهیم برای سریعتر شدن اجرا توابع را به ترتیب ذکر شده (با کمک تردها) صدا کنید.
کد خود را در تابعای به نام solve
در solution.py
بنویسید و زیپ و ارسال کنید.