| اگر تا حالا توی کوئرا سوالی حل نکردی این ویدیو رو ببین! |
|:---:|
| %video.arvan_https://player.arvancloud.ir/index.html?config=https://qvideo.arvanvod.ir/Z7LYW3YQBA/7xQM9V4Vk9/origin_config.json% |
+ محدودیت زمان: ۱ ثانیه
+ محدودیت حافظه: ۲۵۶ مگابایت
----------
در این سوال به شما دو عدد صحیح مثل $a$ و $b$ داده میشود. از شما میخواهیم برنامهای بنویسید که مقدار $a$ و $b$ را دریافت کند و $a + b$ را چاپ کند.
# ورودی
در تنها سطر ورودی، دو عدد صحیح $a$ و $b$ که با یک فاصله از هم جدا شدهاند، داده میشود.
$$1 \leq a, b \leq 100$$
# خروجی
در تنها سطر خروجی، مقدار $a + b$ را چاپ کنید.
# مثالها
## ورودی نمونه ۱
```
3 5
```
## خروجی نمونه ۱
```
8
```
## ورودی نمونه ۲
```
1 1
```
## خروجی نمونه ۲
```
2
```
## **اشتباهات متداول**
<details class="red">
<summary>
**چک کردن شرایط ورودی مسئله**
</summary>
نیازی نیست چک کنید شرایط گفته شده در ورودی برقرار است یا نه. توضیحات محدودیتها فقط برای آگاهی شما دربارهی تستها و محدودیتهای مسئله است و قطعاً در ورودیهای داده شده به برنامهی شما رعایت میشوند. پس نیازی نیست بنویسید:
```python
if 1 <= n <= 100:
# answer of problem
else:
# print('invalid input')
```
</details>
<details class="red">
<summary>
**ابتدا همهی ورودی را گرفتن و در نهایت همهی خروجی را چاپ کردن**
</summary>
شما میتوانید لابهلای دریافت ورودی، خروجی دهید. پس نیازی نیست ابتدا همهی ورودیها را دریافت کنید و در نهایت همهی خروجیها را چاپ کنید. مخصوصاً برای سوالاتی که باید به چندین سوال پاسخ دهید، میتوانید دو قسمت ورودی و خروجی را کاملاً مستقل در نظر بگیرید و مطمئن باشید تداخلی پیش نمیآید.
</details>
<details class="red">
<summary>
**چاپ کردن موارد اضافه برای دریافت ورودی**
</summary>
لطفاً از چاپ کردن موارد اضافه مثل `please enter a number` برای دریافت ورودی پرهیز کنید. برای مثال در زبان پایتون نباید بنویسید:
```python
input('please enter:')
```
</details>
<details class="red">
<summary>
**چند فایلی کد زدن**
</summary>
برای زبانهایی مثل جاوا نباید در بالای کد شما آدرس پکیج داده شود. برای مثال در بالای کد خود نباید بنویسید:
```java
package ir.quera.contest;
```
</details>
<details class="red">
<summary>
**استفاده از چند `Scanner` برای دریافت ورودی**
</summary>
در زبان جاوا، باید فقط یک شئ از جنس `Scanner` تعریف کنید و همهی ورودیها را با آن دریافت کنید.
</details>
<details class="red">
<summary>
**نحوهی دریافت ورودی و چاپ کردن خروجی**
</summary>
برای آشنایی بیشتر برای نحوهی دریافت ورودی و چاپ کردن خروجی این [لینک](https://quera.org/course/assignments/2693/problems/8774) را مطالعه کنید.
</details>
جمع دو عدد (آموزشی)
آقا تختی در المپیک ۱۹۵۶ ملبورن، مدال طلای وزن ۸۷ کیلوگرم را کسب کرد. در المپیک ۱۹۶۰ رم، او مدال نقره وزن ۸۷ کیلوگرم را به دست آورد. در المپیک ۱۹۶۴ توکیو، با وجود تلاش فراوان، به عنوان چهارم این وزن به کار خود پایان داد.
حال از شما میخواهیم یک برنامه بنویسید که شمارهی سال را دریافت کنید و بررسی کنید آیا در آن سال آقا تختی مدالی دریافت کرده یا نه؟
# ورودی
در سطر اول ورودی، عدد صحیح و مثبت $n$ داده میشود.
$$1896 \leq n \leq 1968$$
# خروجی
در صورتی که آقا تختی در آن سال مدال گرفته، `Yes` و در غیر این صورت `No` چاپ کنید.
# مثالها
## ورودی نمونه ۱
```
1960
```
## خروجی نمونه ۱
```
Yes
```
## ورودی نمونه ۲
```
1964
```
## خروجی نمونه ۲
```
No
```
## ورودی نمونه ۳
```
1968
```
## خروجی نمونه ۳
```
No
```
المپیکهای آقا تختی
| فایل اولیه سوال را میتوانید از [این لینک](/contest/assignments/85735/download_problem_initial_project/292705/) دانلود کنید. |
|:-:|
در این بخش از مسابقه، با استفاده از مجموعهدادههای تاریخی المپیک، ابتدا فرایند پیشپردازش، شامل پاکسازی دادههای ناقص و مدیریت مقادیر اطلاعات انجام میشود، سپس با بهکارگیری روشهای آماری، شاخصهای کلیدی مانند تعداد شرکتکنندگان، توزیع بازیکنان و ویژگیهای دیگر ورزشکاران در طول دورههای مختلف المپیک محاسبه شده و سپس روندهای مهم تاریخی در عرصه رقابتهای المپیک شناسایی و تحلیل میگردد.

-----------------
## مجموعهداده
در این قسمت قصد داریم توضیح دهیم که هر ستون از مجموعهداده، نماینده چه متغیری است.
+ **ویژگی ID**: شماره شناسایی منحصر به فرد برای هر رکورد ورزشکار
+ **ویژگی Name**: نام کامل ورزشکار
+ **ویژگی Sex**: جنسیت ورزشکار (M: مرد، F: زن)
+ **ویژگی Age**: سن ورزشکار در زمان شرکت در المپیک
+ **ویژگی Height**: قد ورزشکار بر حسب سانتیمتر (مقادیر NA نشاندهنده دادههای مفقود است.)
+ **ویژگی Weight**: وزن ورزشکار بر حسب کیلوگرم
+ **ویژگی Team**: نام کشور یا تیم ورزشکار (مثال: China، Denmark)
+ **ویژگی NOC**: کد سه حرفی کمیته ملی المپیک کشور مربوطه (مثال: CHN برای چین)
+ **ویژگی Games**: نام دورهی المپیک به صورت ترکیب سال و فصل (مثال: 1992 Summer)
+ **ویژگی Year**: سال برگزاری المپیک
+ **ویژگی Season**: فصل برگزاری (Summer: تابستانی، Winter: زمستانی)
+ **ویژگی City**: شهر میزبان المپیک
+ **ویژگی Sport**: نام رشته ورزشی
+ **ویژگی Event**: رویداد خاص در آن رشته ورزشی
+ **ویژگی Medal**: نوع مدال کسب شده (Gold: طلا، Silver: نقره، Bronze: برنز، NA: بدون مدال)
-----------------
## اهداف
در این بخش از مسابقه، تمام مراحل لازم برای تحلیل دادهها به دقت در نوتبوک توضیح داده شده است. شما موظف هستید با پیروی از این دستورالعملها، چندین مجموعهداده جدید را از دادههای اولیه استخراج کرده و در نهایت خروجیهای خود را در قالب یک فایل **zip** در کوئرا بارگذاری نمایید.
امتیازدهی این بخش بر اساس دو معیار اصلی انجام میشود:
1. صحت و دقت مجموعهدادههای تولید شده
2. انطباق کامل نتایج با الزامات تعیین شده در صورت مسئله
در مسیر المپیک
| فایل اولیه سوال را میتوانید از [این لینک](/contest/assignments/85735/download_problem_initial_project/292703/) دانلود کنید. |
|:-:|
# تحلیل کارایی و برآورد پارامتر
در فایل اولیه سوال یک فایل به فرمت `CSV` به نام `wrestling_stats.csv` وجود دارد که اطلاعات مسابقات کشتی را نگه میدارد.
هر سطر (به جز هدر) شامل این ستونهاست:
- `match_id`
- `weight_class`
- `duration_sec`
- `points_winner`
- `points_loser`
- `continent_winner`
- `match_type`
وظیفهٔ شما نوشتن یک اسکریپت پایتون (بدون هیچ `import` یا ماژول خارجی) است که دو فایل خروجی تولید میکند:
- `part_one.csv`
- `part_two.csv`
----------------------
## پیادهسازی
شما باید یک فایل پایتونی به نام `stc.py` ایجاد کنید. سپس در این فایل باید دو تابع بنویسید که هر تابع وظیفه دارد تا یک دیتاست ایجاد کند و آن را در کنار فایل `stc.py` ذخیره کند. نام این دو تابع به شرح زیر است:
+ **create_part1**
+ **create_part2**
این دو تابع وظیفه دارند که مجموعهدادهی **wrestling_stats.csv** را دریافت کنند و سپس طبق توضیحات داده شده اطلاعاتی را تولید کرده و در دو مجموعه دادهی **part_one.csv** و **part_two.csv** ذخیره کنند. توجه کنید که ورودی این دو تابع باید نام یک مجموعهداده باشد.
شما باید فایل پیادهسازی پایتونی خود را به همراه **part_one.csv** و **part_two.csv** زیپ کرده و در کوئرا قرار دهید.
----------------------
## محدودیتهای کلی
1. **بدون استفاده از هیچ دستور `import`**؛ فقط مجاز به استفاده از built-inهای پایتون هستید.
2. خروجیها باید دقیقاً در قالب `CSV`باشند.
3. دقت اعداد اعشاری در خروجی حداقل ۶ رقم پس از ممیز باشد.
4. همهٔ محاسبات (مثل نمایی و لگاریتم و بهینهسازی) باید به صورت دستی پیادهسازی شوند.
---
## قسمت اول – رتبهبندی کارایی
1. برای هر مسابقه $i$ کارایی را تعریف کنید:
\[ E_i = \frac{\text{points\_winner}_i}{\text{duration\_sec}_i}. \]
2. برای هر جفت \(\bigl(\text{continent\_winner},\,\text{weight\_class}\bigr)\) میانگین کارایی را محاسبه کنید:
\[ \text{mean\_eff}_{c,w} = \frac{1}{N_{c,w}} \sum_{i:(c_i,w_i)=(c,w)} E_i. \]
3. نمونه خروجی در `part_one.csv`:
|continent| weight_class | mean_efficiency|
|:------------------:|:------------------:|:------------------:|
|Asia| Heavyweight | 12.967815168|
ردیفها بر حسب `mean_efficiency` نزولی مرتب شوند.
---
## قسمت دوم – تخمین پارامتر نمایی قطعشده (MLE)
برای هر دستهٔ وزنی ($w$) فرض کنید زمانهای مبارزه تابع چگالی نمایی قطعشده دارند که در بازه \([0,T_w]\) تعریف میشود، آنگاه تابع چگالی احتمال به شکل زیر است:
$$
f(t; \lambda) = \frac{ \lambda \cdot e^{-\lambda t} }{ 1 - e^{-\lambda T_w} }, \quad 0 \leq t \leq T_w
$$
1. برای هر کلاس وزنی w، لگاریتم درستنمایی (log‐likelihood) را بنویسید و پارامتر $\hat\lambda_w$ را با روشی مناسب (مثلاً نیوتن–رافسون یا جستجوی عددی) پیدا کنید.
2. معیار `AIC` را محاسبه کنید:
\[ \mathrm{AIC}_w = 2\,k \;-\; 2\,\ell_w(\hat\lambda_w), \quad k=1. \]
3. خروجی در `part_two.csv`، هر سطر سه ستون:
|weight_class| lambda_hat| aic|
|:------------------:|:------------------:|:------------------:|
| Heavyweight | 15.21354613| 18.21354613|
ردیفها بر حسب `lambda_hat` به صورت صعودی مرتب شوند.
دقت عددی هر مقدار حداقل ۶ رقم اعشار باشد.
---
**نکات تکمیلی**
محدودیتهای پیادهسازی :
+ نمیتوانید از هیچ کتابخانهٔ خارجی یا ماژول (یعنی هیچ `import`) استفاده کنید.
+ تنها از توابع و امکانات پایهٔ پایتون استفاده کنید.
+ فایلها را با متدهای استاندارد `open/read/write` بخوانید/بنویسید.
+ فرمت `CSV` باید دقیقاً مطابق با آنچه گفته شد باشد (جداسازی با `,` ، بدون فاصلهٔ اضافه).
+ برای توابع نمایی از مقدار ثابت e=2.718281828459045 استفاده کنید.
+ همهٔ محاسبات آماری و عددی را باید خودتان پیاده کنید (تابع log، مشتق، حل عددی و …).
کشتیگیری در دنیای اعداد
|دادههای اولیه برای **تست نهایی** را از [این لینک](/contest/assignments/85735/download_problem_initial_project/292704/) دانلود کنید.|
|:-:|
<details class="yellow">
<summary>
**توضیحات مهم اولیه**
</summary>
در فایل *world_cup.zip* فایلی به اسم initial.sql وجود دارد.
با اجرای این فایل، همه جداول و سطرهایی که برای **تست نهایی** مورد استفاده قرار میگیرد در پایگاه داده شما ایجاد میشوند. پیش از اجرای این فایل، حتما پایگاه دادهای با اسم دلخواه ایجاد کنید و در ابتدای این فایل، کد `use YOUR_DB_NAME;` را وارد کنید.
**کوئریهای شما باید روی آخرین نسخهی *MySQL* قابل اجرا باشند.**
برای چک کردن سینتکس کد *SQL* خود میتوانید از **[این وبسایت](https://www.eversql.com/sql-syntax-check-validator/)** کمک بگیرید.
</details>
این مسئله شامل ۶ بخش است که در ادامه آمده است.
## 1) سوال اول
اسم بازیکنانی که دستکم یک بار جایزهٔ آقای گلی را گرفتهاند را همراه با تعداد دفعات دریافت جایزه بیابید. ردیفها باید مرتبشده نزولی بر اساس تعداد دفعات و صعودی بر اساس شناسهٔ بازیکن باشند.
<details class="blue">
<summary>
*توضیحات در مورد Query اول*
</summary>
سطر اول خروجی شما باید به شکل زیر باشد:
| family_name | name| times_won |
| --- | ---| --- |
| Lineker| Gary| 1|
</details>
## 2) سوال دوم
سینا قصد دارد عملکرد کشورها در تاریخ جام جهانی فوتبال را بر اساس یک سیستم امتیازدهی خاص ارزیابی کند.
طبق این سیستم، به تیم قهرمان هر دوره ۴ امتیاز، تیم نایبقهرمان ۳ امتیاز، تیم سوم ۲ امتیاز و تیم چهارم ۱ امتیاز دریافت میکند. سینا مجموع امتیاز هر کشور را در تمامی دورههای جام جهانی محاسبه کرده و در پایان، فهرستی از ۱۰ کشور برتر از لحاظ مجموع امتیاز ارائه میدهد.
همچنین او تأکید دارد که نتایج "آلمان غربی" (West Germany) باید با "آلمان" (Germany) یکی در نظر گرفته شود.
خروجی مورد انتظار، جدولی شامل دو ستون با نامهای "team_name" و "total_score" است که در آن کشورها بر اساس مجموع امتیاز به صورت نزولی مرتب شدهاند.
در صورتی که دو یا چند کشور امتیاز برابر داشته باشند، اولویت با ترتیب حروف الفبای نام کشور به صورت صعودی است. جدول نهایی باید دقیقاً شامل ۱۰ ردیف باشد.
<details class="blue">
<summary>
*توضیحات در مورد Query دوم*
</summary>
2 سطر اول خروجی شما باید به شکل زیر باشد:
| team_name | total_score |
| --- | --- |
| Germany | 37 |
| Brazil | 32 |
</details>
## 3) سوال سوم
پنج تورنمنت با بیشترین تعداد کارت قرمز را به همراه سال برگزاری نمایش دهید. ردیفها باید مرتبشده نزولی بر اساس تعداد کارت قرمز و صعودی بر اساس شناسهٔ تورنمنت باشند.
<details class="blue">
<summary>
*توضیحات در مورد Query سوم*
</summary>
2 سطر اول خروجی شما باید به شکل زیر باشد:
| tournament_id| tournament_year| red_card_count|
| --- | ---| --- |
| WC-1998| 1998| 18|
</details>
## 4) سوال چهارم
برای تحلیل عملکرد مربیان در رقابتهای جام جهانی، نیاز است فهرستی از ۱۱ مربی برتر از نظر مجموع امتیازات کسبشده تهیه شود. در این ارزیابی، هر برد معادل ۳ امتیاز، هر تساوی معادل ۱ امتیاز، و باخت بدون امتیاز در نظر گرفته میشود.
کوئریای بنویسید که بر اساس این معیار، مربیانی را که بیشترین امتیاز را در تاریخ جام جهانی کسب کردهاند، شناسایی کند. خروجی باید شامل دو ستون زیر باشد:
+ `full_name`: نام کامل مربی که از ترکیب نام و نام خانوادگی با یک فاصله ایجاد شده است.
+ `total_score`: مجموع امتیازات کسبشده توسط مربی.
ترتیب نتایج باید به صورت نزولی بر اساس `total_score` و در صورت برابر بودن امتیاز، به صورت نزولی بر اساس `full_name` باشد.
**دقت کنید که تنها ۱۱ نفر اول باید در خروجی نمایش داده شوند.**
<details class="blue">
<summary>
*توضیحات در مورد Query چهارم*
</summary>
3 سطر اول خروجی شما باید به شکل زیر باشد:
| full_name | total_score |
| --- | --- |
| Helmut Schön | 53 |
| Luiz Felipe Scolari | 49 |
| Mário Zagallo | 44 |
</details>
## 5) سوال پنجم
هر تیم در مرحلهٔ حذفی چند گل زده است؟ فقط تیمهایی که مجموع گلهایشان در این مرحله بیش از ۱۰ باشد را نمایش دهید و بر اساس گل، نزولی و در صورتی که تعداد گل دو تیم مساوی بود بر اساس شناسهٔ تیم به صورت صعودی مرتب کنید.
<details class="blue">
<summary>
*توضیحات در مورد Query پنجم*
</summary>
3 سطر اول خروجی شما باید به شکل زیر باشد:
| time_id| total_goals |
| --- | --- |
| T-09 | 95|
| T-28 | 65|
| T-39 | 59|
</details>
## 6) سوال ششم
هدف این بخش، استخراج فهرستی از ۲۰ بازیکن با بیشترین سن، در زمان حضور در یک مسابقه است. سن بازیکنان باید بر حسب روز محاسبه شود.
کوئریای بنویسید که اطلاعات زیر را برای این بازیکنان استخراج کند:
+ `full_name`: نام کامل بازیکن که با ترکیب نام و نام خانوادگی با یک فاصله ایجاد شده است.
+ `match_name`: نام مسابقهای که بازیکن در آن به میدان رفته و مشخصکننده دو تیم حاضر است.
+ `team_name`: نام تیم ملی بازیکن.
+ `tournament_year`: سال برگزاری تورنمنت.
+ `age`: سن بازیکن بر حسب روز در زمان انجام مسابقه.
نتایج باید به صورت نزولی بر اساس ستون `age` مرتب شوند و فقط ۲۰ رکورد اول نمایش داده شود. توجه داشته باشید که یک بازیکن ممکن است بیش از یک بار در این فهرست ظاهر شود.
<details class="blue">
<summary>
*توضیحات در مورد Query ششم*
</summary>
3 سطر اول خروجی شما باید به شکل زیر باشد:
| full_name | match_name | team_name | tournament_year | age |
| --- | --- | --- | --- | --- |
| Essam El Hadary | Saudi Arabia v Egypt | Egypt | 2018 | 16597 |
| Faryd Mondragón | Japan v Colombia | Colombia | 2014 | 15709 |
| Roger Milla | Russia v Cameroon | Cameroon | 1994 | 15379 |
</details>
# **روش پیادهسازی**
در یک فایل با نام `code.sql` کد خود را قرار دهید و آن را فشرده (`zip` ) کنید و در سایت بارگذاری نمایید. کد شما باید به صورت زیر باشد(نام فایل zip مهم نیست).
```sql
-- Section1
your first query here
-- Section2
your second query here
-- Section3
your third query here
-- Section4
your fourth query here
-- Section5
your fifth query here
-- Section6
your sixth query here
```
پشت صحنه زمین
| مجموعهداده و فایل اولیه پروژه را میتوانید از [این لینک](/contest/assignments/85735/download_problem_initial_project/292702/) دانلود کنید.|
| :--: |
هر فصل، صدها بازیکن در لیگ حرفهای بسکتبال ایران توپ میزنند. بعضیها ستاره میشوند، بعضیها متوسط میمانند و بعضیها بیسروصدا محو میشوند. ولی یک سوال همیشه در ذهن مربیها، آنالیزورها و حتی خود بازیکنها هست:
**"آیا این بازیکن ۵ سال بعد هنوز توی لیگ خواهد بود؟ یا این فصل آخرین فرصتش برای درخشیدن است؟"**
در این چالش، شما نقش یک تحلیلگر داده را دارید که با دسترسی به آمار دقیق عملکرد هر فصل بازیکنان باید یک مدل هوشمند بسازد. هدف این است که فقط با نگاه به عملکرد یک فصل، بفهمید که آیا یک بازیکن آینده دارد یا خیر؟
## نحوهی ارسال پاسخ
برای پاسخ به این سوال ابتدا فایل نوتبوک قرار گرفته در فایل اولیه را باز کنید و سپس مراحل را مطابق آنچه که از شما خواسته شده انجام دهید. در نهایت، پس از اجرای سلول جوابساز (آخرین سلول فایل نوتبوک) فایل `result.zip` ساخته شده را ارسال نمایید.
میمانی یا که میروی؟
| فایلهای اولیه را میتوانید از [این لینک](/contest/assignments/85735/download_problem_initial_project/292701/) دانلود کنید.|
|:-:|
در ادامهی مسابقه، قصد داریم توانمندی شما را در حوزهی پردازش تصویر و بینایی کامپیوتر ارزیابی کنیم. در این سوال، با دادههای تصویری مرتبط با کشتی سر و کار خواهید داشت.
در این سوال هدف این است که با استفاده از تکنیکهای پردازش تصویر یا بینایی کامپیوتر، تابعی را پیادهسازی کنید که در هر تصویر دو کشتیگیر را **سفید** کند و مابقی جزئیات را **سیاه** کند.
|  |
|:--------:|
| *شکل ۱ تصویر ورودی و شکل ۲ تصویر خروجی مطلوب مسئله است.* |
_________
## معرفی تصاویر
در فایل اولیه، چهار نمونه از تصاویر ورودی و خروجی (ماسک سیاه و سفید) قرار دارد که میتوانید از آنها برای ارزیابی پیادهسازی خود استفاده کنید. در هر تصویر، دو کشتیگیر حضور دارند. اندازهی تمامی تصاویر ورودی برابر با ۶۴۰×۶۴۰ پیکسل است. در تمام تصاویر، کشتیگیران لباس مخصوص کشتی به تن دارند.
وظیفهی شما این است که **ماسکی تولید کنید که تمام بدن هر دو کشتیگیر را به رنگ سفید** نمایش دهد و **سایر بخشهای تصویر را به رنگ سیاه** درآورد.
تصویر خروجی باید دارای همان ابعاد تصویر ورودی و در فضای رنگی `RGB` باشد، بهگونهای که هر پیکسل مربوط به ناحیهی کشتیگیران سفید و سایر پیکسلها سیاه باشد.
## نحوه ارسال پاسخ
شما باید یک فایل پایتونی با نام `wrestler.py` بسازید که درون آن یک تابع با نام `detect_wrestler` پیادهسازی شده است. این تابع آدرس یک تصویر را به عنوان ورودی میگیرد و سپس در خروجی باید تصویری را تحویل بدهد که در قسمتهای بدن کشتیگیر پیکسلها سفید و در سایر نواحی پیکسلها سیاه باشند.
در نهایت این فایل پایتونی را در قالب *zip* قرار دهید و در کوئرا آپلود کنید.
<details class="red">
<summary>
**کتابخانههای مجاز**
</summary>
توجه کنید که در این سوال تنها مجاز به استفاده از `numpy` و `openCV` هستید .
</details>
## معیار ارزیابی
در این سوال خروجی تابع شما با استفاده از معیار `Intersection of Union` یا به اختصار `IoU` ارزیابی خواهد شد و باید حداقل دقت ۶۰ درصد را کسب نماید. بنابراین در صورت کسب آستانه مورد نظر، امتیاز شما همان دقت شما از ۱۰۰ و در غیر این صورت صفر خواهد بود. این معیار بین ماسک واقعی و ماسک تولید شده با استفاده از تابع شما محاسبه خواهد شد.