در آستانهی **المپیک فناوری ۲۰۲۶**، **دوین** *(Dwin)* یک مرکز فرماندهی برای شبیهسازی روز مسابقه ساخته است! جایی که قرار است سامانههای آنلاین، گزارشهای لحظهای و ابزارهای پشتیبانی با حالوهوای **جام جهانی ۲۰۲۶** کنار هم کار کنند. اولین گزارش این مرکز، درست پیش از شروع مرحلهی انتخابی آنلاین آماده میشود. شرکتکنندگان از سراسر دنیا باید وارد سامانه شوند و هر کدام **شناسهای** از ۱ تا $n$ دارند. اما شب قبل از مسابقه، بعضیها درگیر تماشای بازیهای جام جهانی، خلاصهی مسابقهها و تحلیلهای بعد از بازی میشوند و صبح کمی دیرتر از بقیه به سامانه میرسند.

صبح مسابقه، **مرکز فرماندهی دوین** فهرست شناسههای افرادی را که وارد سامانه شدهاند دریافت میکند و باید مشخص کند کدام شناسهها هنوز در گزارش حضور دیده نمیشوند. این گزارش ساده، اولین قدم برای مطمئن شدن از آماده بودن سامانهی انتخابی است. با داشتن عدد $n$ و لیست شناسههای شرکتکنندگانی که وارد سامانه شدهاند، مشخص کنید کدام شناسهها از بازه ۱ تا $n$ در این فهرست حضور **ندارند.**
# **پروژهی اولیه**
**پروژهی اولیه** را میتوانید از [این لینک](/contest/assignments/103144/download_problem_initial_project/357228/) دانلود کنید.
<details class="yellow">
<summary>
**ساختار فایلهای پروژه**
</summary>
```
missing_numbers/
├── test/
| ├── __init__.py
| └── test_sample.py
└── <mark class="yellow" title="این فایل را تکمیل کنید.">solution.py</mark>
```
</details>
# **ورودی**
**این مسئله ورودی استاندارد ندارد.** بهجای آن، تابع زیر را پیادهسازی کنید. این تابع ورودیها را بهصورت پارامتر دریافت میکند:
```python
def missing_numbers(n: int, numbers: list[int]) -> list[int]:
return []
```
$$1 \le n \le 10^5$$
**پارامتر** `n` **بزرگترین** شناسهٔ شرکتکنندگان را مشخص میکند؛ یعنی شناسهها از ۱ تا $n$ شمارهگذاری شدهاند. پارامتر `numbers` شامل شناسهٔ شرکتکنندگانی است که در زمان شروع مسابقه با موفقیت وارد سامانه شدهاند.
# **خروجی**
لیستی از **تمام شناسههایی** که در **بازهٔ** ۱ تا $n$ قرار دارند اما در فهرست شرکتکنندگان حاضر دیده نمیشوند را برگردانید. این شناسهها متعلق به افرادی هستند که احتمالاً هنوز **خواب** ماندهاند و وارد مسابقه نشدهاند! اگر همهٔ شرکتکنندگان وارد سامانه شده باشند، **خروجی باید یک لیست خالی باشد.**
# **نکات پیادهسازی**
+ **ترتیب عناصر** `numbers` اهمیتی **ندارد** و ممکن است شناسهها بهصورت **نامرتب** باشند.
+ **تضمین** میشود تمام شناسههای موجود در `numbers` در بازهی `1` تا `n` قرار دارند.
+ ممکن است یک شناسه بیش از یک بار در `numbers` ظاهر شود و وجود مقادیر تکراری **نباید** روی نتیجه تأثیر بگذارد.
+ شناسههای خروجی باید **به ترتیب صعودی** باشند. در صورتی که خروجی، یک خروجی معتبر اما با **ترتیبی نامعتبر،** مثلا **ترتیب تصادفی** باشد، سیستم داوری نمره **صفر** را برای آن لحاظ خواهد کرد.
# **مثال**
### **ورودی ۱**
```python
>> n = 10
>> numbers = [1, 2, 3, 5, 6, 8, 9, 10]
>> missing_numbers(n, numbers)
```
### **خروجی ۱**
```python
>> [4, 7]
```
- در این مثال شرکتکنندگانی با شناسههای ۱ تا ۱۰ در مسابقه ثبتنام کردهاند. با بررسی فهرست افراد حاضر مشخص میشود که شناسههای ۴ و ۷ در سامانه دیده نمیشوند؛ بنابراین این دو شرکتکننده هنوز وارد مسابقه **نشدهاند** و در خروجی گزارش میشوند.
### **ورودی ۲**
```python
>> n = 7
>> numbers = [7, 2, 2, 5, 1, 6]
>> missing_numbers(n, numbers)
```
### **خروجی ۲**
```python
>> [3, 4]
```
- در این مثال شناسههای ۳ و ۴ در فهرست افراد حاضر وجود ندارند. همچنین شناسه ۲ دو بار در `numbers` تکرار شده است که **نباید** روی نتیجه تأثیری داشته باشد.
### **ورودی ۳**
```python
>> n = 5
>> numbers = [5, 1, 4, 2, 3]
>> missing_numbers(n, numbers)
```
### **خروجی ۳**
```python
>> []
```
- در این مثال تمام شناسههای ۱ تا ۵ در فهرست `numbers` وجود دارند؛ بنابراین **هیچ شناسهای گم نشده است** و خروجی یک لیست **خالی** خواهد بود.
### **ورودی ۴**
```python
>> n = 8
>> numbers = [8, 3, 1, 7]
>> missing_numbers(n, numbers)
```
### **خروجی ۴**
```python
>> [2, 4, 5, 6]
```
- در این مثال شناسههای ۲، ۴، ۵ و ۶ در فهرست افراد حاضر دیده **نمیشوند.** توجه کنید که با وجود **نامرتب** بودن `numbers`، شناسههای گمشده در خروجی به ترتیب صعودی قرار گرفتهاند.
# **آنچه باید آپلود کنید**
تنها کافی است فایل `solution.py` را تکمیل کرده و همان فایل را ارسال کنید.
- **توجه:** تابع باید **لیست شناسههای گمشده را برگرداند** و نباید چیزی چاپ (`print`) کند.
- **توجه:** ممکن است یک شناسه چندین بار در `numbers` تکرار شده باشد؛ تکراری بودن شناسهها نباید باعث تکرار آن شناسه در خروجی شود.
- **توجه:** خروجی باید حتماً به صورت **صعودی** باشد.
- **توجه:** اگر هیچ شناسهای گم نشده باشد، باید **لیست خالی `[]`** برگردانده شود.
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.