+ محدودیت زمان: ۱ ثانیه
+ محدودیت حافظه: ۲۵۶ مگابایت
----------
در این سوال به شما دو عدد صحیح مثل $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>
<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>
در زبان جاوا، باید نام فایل ارسالی شما با نام کلاسی که تابع `main` در آن قرار دارد یکسان باشد، برای مثال اگر نام کلاس شما `Question1` است، نام فایل ارسالی شما باید `Question1.java` باشد.
</details>
<details class="red">
<summary>
**نحوهی دریافت ورودی و چاپ کردن خروجی**
</summary>
برای آشنایی بیشتر برای نحوهی دریافت ورودی و چاپ کردن خروجی این [لینک](https://quera.org/course/assignments/2693/problems/8774) را مطالعه کنید.
</details>
+ محدودیت زمان: ۱ ثانیه
+ محدودیت حافظه: ۲۵۶ مگابایت
----------
امین تصمیم گرفته است به همراه دوستانش سفری به شهر [حاجیبکنده](https://fa.wikipedia.org/wiki/%D8%AD%D8%A7%D8%AC%DB%8C%E2%80%8C%D8%A8%DA%A9%D9%86%D8%AF%D9%87) در استان گیلان داشته باشد تا دانش خود را در حوزهی بکاند توسعه دهد. او زمانی این سفر را انجام خواهد داد که بتواند ویلایی با قیمت مناسب پیدا کند که او و $k$ نفر از دوستانش در آن اقامت داشته باشند.
در شهر حاجیبکنده، $n$ ویلای مناسب وجود دارد که شمارههای آنها از $1$ تا $n$ است. ویلای شماره $i$ هزینهی پایهای برابر با $a_i$ تومان برای **همهی** $x_i$ نفر دارد (این هزینه برای هر نفر نیست و حتی اگر کمتر از $x_i$ نفر هم بیایند، باید $a_i$ تومان پرداخت شود) و برای **هر نفر** اضافی مبلغ $b_i$ تومان دریافت میکند.
هدف این است که ارزانترین ویلا برای این جمع پیدا شود. اگر دو ویلا هزینهی یکسانی داشته باشند، ویلایی انتخاب خواهد شد که شمارهی کمتری داشته باشد.
# ورودی
در سطر اول، دو عدد صحیح $n$ و $k$ داده میشود که به ترتیب تعداد ویلاها و تعداد دوستان امین را نشان میدهند.
$$1 \leq n \leq 100, \quad 0 \leq k \leq 100$$
در $n$ سطر بعدی، هر سطر شامل سه عدد $a_i$ و $b_i$ و $x_i$ است که به ترتیب هزینهی پایهی ویلا، هزینهی هر نفر اضافی، و تعداد نفرات پایهی ویلا را مشخص میکنند.
$$1 \leq a_i, b_i, x_i \leq 100$$
# خروجی
در تنها سطر خروجی، شمارهی ویلایی که باید انتخاب شود را چاپ کنید.
# مثالها
## ورودی نمونه ۱
```
5 3
90 50 5
50 10 1
70 30 3
80 40 4
60 20 2
````
## خروجی نمونه ۱
```
2
````
## ورودی نمونه ۲
```
4 0
40 72 7
60 21 8
20 32 3
80 39 2
````
## خروجی نمونه ۲
```
3
````
+ محدودیت زمان: ۱ ثانیه
+ محدودیت حافظه: ۲۵۶ مگابایت
----------
امین که از حاجیبکنده خیلی خوشش آمده، میخواهد یک قطعه زمین بخرد و در آن برای خودش ویلا بسازد. در املاک به امین میگویند: «زمینی که برای تو در نظر گرفتهایم، بیشترین مساحت ممکن را در نوع خودش دارد! این زمین یک چهارضلعی است که اضلاع روبهروی آن با یکدیگر موازی هستند. کمترین فاصله بین دو ضلع موازی $m$ است. بیشترین فاصله بین هر دو نقطه روی مرزهای این زمین برابر با $M$ است.»
امین که انتظار نداشت مسئلهای که در املاک طراحی شده، اینقدر پیچیده باشد، از شما میخواهد بیشترین مقدار ممکن برای مساحت این زمین را پیدا کنید و یا بگویید که چنین زمینی وجود ندارد.
# ورودی
در تنها سطر ورودی، دو عدد صحیح و مثبت $m$ و $M$ داده میشود.
$$1 \leq m \leq M \leq 10 \, 000$$
# خروجی
در تنها سطر خروجی، اگر چنین زمینی وجود داشته باشد، بیشترین مساحت ممکن برای زمین را چاپ کنید. پاسخ شما باید حداکثر اختلافی معادل $10^{-6}$ با جواب دقیق داشته باشد. در غیر این صورت، باید عبارت `impossible` را چاپ کنید.
# مثالها
## ورودی نمونه ۱
```
1403 2025
````
## خروجی نمونه ۱
```
2048675.953962461
````
## ورودی نمونه ۲
```
1000 1000
````
## خروجی نمونه ۲
```
impossible
````
+ محدودیت زمان: ۱ ثانیه
+ محدودیت حافظه: ۲۵۶ مگابایت
----------
استاد در حال آماده کردن یک مسئله برای دانشجویان است. مسئله به این صورت است که به دانشجویان $n$ عدد صحیح $x_1, x_2, \ldots, x_n$ و یک عدد صحیح $m$ که $1 \le m \lt 2^n$ است، داده میشود.
دانشجو باید $n$ عدد صحیح $a_1, a_2, \ldots, a_n$ را انتخاب کند، به طوری که هر یک از آنها برابر با $-1$، $0$ یا $1$ باشند و حداقل یکی از این اعداد غیر صفر باشد. اعداد انتخابشده باید این شرط را برآورده کنند که $a_1x_1 + a_2x_2 + \ldots + a_nx_n$ بر $m$ بخشپذیر باشد.
استاد تصمیم گرفته است که پاسخ مسئله باید آرایهای از اعداد صحیح $a_1, a_2, \ldots, a_n$ باشد به طوری که $-1 \le a_i \le 1$، حداقل یکی از آنها برابر با $0$ نیست. برای سادهتر کردن کار بررسی پاسخ دانشجویان، او میخواهد اعداد صحیح $x_1, x_2, \ldots, x_n$ و یک عدد صحیح $m$ را طوری انتخاب کند که آرایه $a_1, a_2, \ldots, a_n$ تنها پاسخ ممکن باشد. متأسفانه این کار ممکن نیست، زیرا آرایه $-a_1, -a_2, \ldots, -a_n$ نیز همیشه یک پاسخ است.
بنابراین استاد شرایط خود را آسانتر میکند و میخواهد تنها دو پاسخ ممکن وجود داشته باشد: $a_1, a_2, \ldots, a_n$ و $-a_1, -a_2, \ldots, -a_n$. به او کمک کنید تا اعداد صحیح $x_1, x_2, \ldots, x_n$ و یک عدد صحیح $m$ را انتخاب کند.
# ورودی
در سطر اول ورودی، عدد صحیح $n$ آمده است.
$$1 \leq n \leq 30$$
در سطر دوم ورودی، $n$ عدد صحیح $a_1, a_2, \ldots, a_n$ آمده است.
$$-1 \leq a_i \leq 1$$
تضمین میشود حداقل یکی از $a_i$ برابر با $0$ نیست.
# خروجی
در سطر اول خروجی، باید یک عدد صحیح $m$ چاپ شود.
$$1 \le m \lt 2^n$$
در سطر دوم خروجی، باید $n$ عدد صحیح $x_1, x_2, \ldots, x_n$ که با فاصله جدا شدهاند، چاپ شود.
$$-2^{30} \lt x_i \lt 2^{30}$$
اگر چندین پاسخ ممکن وجود دارد، هرکدام را میتوانید خروجی دهید. میتوان ثابت کرد که همیشه پاسخ وجود دارد.
# مثالها
### ورودی نمونه ۱
```
2
1 -1
```
### خروجی نمونه ۱
```
3
1 4
```
در مثال دادهشده، دانشجویان باید $a_1$ و $a_2$ را طوری انتخاب کنند که $a_1 + 4a_2$ بر $3$ بخشپذیر باشد. دو پاسخ ممکن وجود دارد:
+ $a_1 = 1$، $a_2 = -1$ ($a_1 + 4a_2 = 1 - 4 = -3$، که بر $3$ بخشپذیر است).
+ $a_1 = -1$، $a_2 = 1$ ($a_1 + 4a_2 = -1 + 4 = 3$، که بر $3$ بخشپذیر است).
شرایط استاد برآورده شده است.
+ محدودیت زمان: ۲ ثانیه
+ محدودیت حافظه: ۲۵۶ مگابایت
----------
امین به میدان شهرداری رفته و در آنجا یک شعبده باز مشغول انجام یک تردستی است. شعبدهباز یک داوطلب میخواهد و امین داوطلب میشود.
شعبدهباز به امین $n$ کارت میدهد که روی هر کدام از این کارتها یکی از اعداد $1$ تا $n$ نوشته شده است. شعبدهباز از امین میخواهد کارتها را هر جور که دوست دارد، بههم بریزد سپس از پشت روی میز بهصورت دایرهای قرار دهد.
سپس شعبدهباز از امین میخواهد مجموعهی هر سه کارت متوالی را به شعبدهباز اعلام کند. توجه کنید نیازی نیست اعداد را بهترتیب مشخص کند.
حالا شعبدهباز میخواهد تعداد حالتهای مختلف برای وضعیت کارتها را حدس بزند و اگر چند روش ترتیب مختلف وجود دارد، شعبدهباز ترتیب الفبایی کمینه را انتخاب میکند.
از شما میخواهیم برنامهای بنویسید که حدسها را مشخص کند.
# ورودی
در سطر اول ورودی، عدد صحیح $n$ داده میشود که تعداد کارتها را نشان میدهد.
$$1 \leq n \leq 300\,000$$
در $n$ سطر بعدی، در هر سطر سه عدد متمایز میآیند که نشاندهنده مجموعههایی است که امین گزارش داده است.
تضمین شده است که مجموعههای ارائهشده توسط امین حداقل با یک ترتیب کارتها مطابقت دارد.
# خروجی
یک ترتیب برای حدس درست شعبدهباز که با گفتههای امین مطابقت دارد را چاپ کنید.
# مثالها
## ورودی نمونه ۱
```
6
3 4 1
5 1 6
5 4 2
2 4 3
2 5 6
6 1 3
````
## خروجی نمونه ۱
```
1 3 4 2 5 6
````
## ورودی نمونه ۲
```
3
1 2 3
2 3 1
1 2 3
````
## خروجی نمونه ۲
```
1 2 3
````
+ محدودیت زمان: ۲ ثانیه
+ محدودیت حافظه: ۲۵۶ مگابایت
----------
روش هافمن یک الگوریتم برای فشردهسازی براساس احتمال تکرار کلمات است. این روش به هر حرف یک رشتهی باینری (رشتهای از `0` و `1`) متناظر میکند و بهجای رشتهای از آن کلمات میتوانیم از آن رشتهها استفاده کنیم.
نکتهی مهم در این فشردهسازی این است که برای هر رشتهی فشرده شده، فقط یک روش برای جایگذاری کلمات اصلی داشته باشد تا بازسازی متن اصلی ممکن باشد.
حال هافتو میخواد رشتههای $s_1, s_2, \dots, s_n\,$ بهجای کلمات قرار دهد اما مطمئن نیست که روش فشردهسازی او هم مثل هافم بدون ابهام است.
از شما میخواهیم برنامهای بنویسید که بررسی کنید آیا این رشتهها برای فشردهسازی بدون ابهام هستند و یا طول کوتاهترین رشتهای که اگر با آن بازسازی کنیم ابهام پیش میآید را چاپ کنید.
# ورودی
در سطر اول ورودی، عدد صحیح و مثبت $n$ آمده که تعداد رشتهها را نشان میدهد.
$$1 \leq n \leq 1000$$
در $n$ سطر بعدی، در هر سطر یک رشته داده میشود.
$$1 \leq |s_i | \leq 16$$
# خروجی
درصورتی که این کلمات ابهامی ندارند، رشتهی `YES` و در غیر این صورت رشتهی `NO` را در سطر اول و در سطر بعدی، طول کوتاهترین رشتهی دودویی که برای این متناظر کردن ابهام دارد را چاپ کنید.
# مثالها
## ورودی نمونه ۱
```
3
010
101
01
```
## خروجی نمونه ۱
```
NO
6
```
## ورودی نمونه ۲
```
5
1
10
100
1000
10000
```
## خروجی نمونه ۲
```
YES
```