مثلث‌ها


  • محدودیت زمان: ۳ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت

در این سوال از شما tt پرسش پرسیده می‌شود. در هر پرسش به شما مختصات نقاط AA و BB و CC و DD داده می‌شود و شما باید در پاسخ مشخص کنید که نقطه DD درون و یا روی محیط مثلث ABCABC قرار دارد یا خیر. (نقاط در فضای دو بعدی قرار دارند.)

ورودی🔗

در سطر اول ورودی عدد tt آمده‌است.

سپس به ازای هر پرسش در چهار خط، مختصات نقاط AA و BB و CC و DD داده می‌شود.

1t,xi,yi1 000 0001 \leq t, x_i,y_i \leq 1\ 000\ 000

خروجی🔗

به ازای هر پرسش یه خط چاپ کنید به این شیوه که اگر نقطه درون و یا روی محیط مثلث بود، YES و در غیر این صورت NO چاپ کنید.

مثال🔗

ورودی نمونه ۱🔗

2
1 1
1 6
6 1
4 3
1 1 
1 6
6 1
5 5
Plain text

خروجی نمونه ۱🔗

YES
NO
Plain text

ورودی نمونه ۲🔗

1
1 2
2 1
1 1
2 1
Plain text

خروجی نمونه ۲🔗

YES
Plain text

هشت به یازده!


  • محدودیت زمان: ۱ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت

این یک سوال آمار و احتمال است، ولی شما باید روشی الگوریتمی برای حل آن بیابید و برنامه‌ی روشتان را پیاده‌سازی کنید!

فرض کنید تابع rand8 تابعی است که هر بار صدایش می‌کنیم، با احتمال برابر، یک عدد صحیح بین ۰ تا ۷ خروجی می‌دهد. می‌خواهیم تابع rand11 را با استفاده از rand8 بسازیم طوری که با احتمال برابر، یک عدد صحیح بین ۰ تا ۱۰ خروجی دهد. روش ساخت باید کاملا قطعی و غیراحتمالاتی باشد.

نحوه پیاده‌سازی و سامانه داوری🔗

برنامه‌ی شما باید ورودی را از ورودی استاندارد دریافت کند و در خروجی استاندارد بنویسد.

برنامه‌ی شما ابتدا یک عدد tt دریافت می‌کند که یعنی برنامه‌ی شما باید tt بار مستقل از هم مسئله را حل کند، که در هر بار قرار است با داشتن خروجی ۱۰۰ بار صدا کردن یک تابع ثابتrand8، یک عدد تصادفی با تابع rand11 تولید شود. توجه کنید در دفعات مختلف، ممکن است تابع rand8 رفتارهای مختلف داشته باشد و برنامه‌ی شما باید با توجه به رفتار آن خروجی دهد.

مثلا اگر t=4t=4، یعنی ۴ تابع بعنوان rand8 داریم. سپس به ترتیب، خروجی ۱۰۰ بار اجرای هریک از این توابع در ورودی شما آمده است (مجموعا ۴۰۰ عدد). سپس شما باید ۴ عدد خروجی دهید که هر یک از آن‌ها، خروجی تابع rand11 شما با توجه به مقادیر دریافتی است.

توجه کنید که الگوریتم تابع rand11 شما نباید در tt تست مختلف تفاوت کند؛ شما باید یک تابع طراحی کنید و بر اساس همان همه‌ی تست‌ها را پاسخ دهید. اما ممکن است تابع rand8 در تست‌های مختلف متفاوت رفتار کند، و حتی گاهی اوقات اشتباه کار کند! اگر تابع rand8 اشتباه باشد و احتمال اعداد خروجی‌اش برابر نباشد، لزومی ندارد توزیع اعداد خروجی شما درست باشد. سامانه‌ی داوری با دادن توابع rand8 مختلف، قطعی و غیر احتمالاتی بودن روش شما را می‌سنجد.

ورودی🔗

در خط اول ورودی مقدار tt آمده است. سپس در tt خط بعدی، در هر خط ۱۰۰ عدد بین ۰ تا ۷ آمده است هر خط خروجی‌های یک تابع rand8 است.

1t2 0001 \le t \le 2\ 000

خروجی🔗

در tt سطر مقادیر خروجی تابع rand11 طراح شده به ازای هر یک از rand8ها را چاپ کنید.

توجه کنید که خروجی این سوال یکتا نیست و خروجی درست در این سوال معنا ندارد؛ سامانه‌ی داوری با توجه به رفتار برنامه‌ی شما با توجه به خروجی‌های مختلف، درست بودن روشتان را می‌سنجد.

مثال🔗

ورودی نمونه را از اینجا دانلود کنید🔗

خروجی نمونه را از اینجا دانلود کنید🔗

Digikala Pricing System


How would you design and implement a Dynamic Pricing System for Digikala? The Dynamic Pricing System should use machine learning to intelligently select which products should receive a discount for which users and how much that discount should be. You must optimize for both customer satisfaction and total profit per customer.

Describe the strategy, algorithm, tools, open-source, and language you would use. Also, describe the metrics that you would use to test it.

Upload the description of your solution as a PDF file. It'll be evaluated manually. Your description can be in Farsi.

Baby


If you find a baby in the middle of the street, what would you do?

Upload your answer as a PDF file. It'll be evaluated manually. Your description can be in Farsi.