+ محدودیت زمان: ۱ ثانیه
+ محدودیت حافظه: ۶۴ مگابایت
----------
![توضیح تصویر](https://quera.org/qbox/view/ICu8LWMUn8/problem_01.png)
تپسی معتقد است که هر ماشین، باید در هر لحظه، «بخاری» یا «کولر»ش روشن باشد تا مسافرین راضی باشند.
به همین دلیل، دمای هوای $n$ روز متوالی، توسط کارشناسان این شرکت محاسبه شده است و آن را به صورت یک دنباله مانند $t_1, t_2, \dots, t_n \,$ دارد. (عدد $t_i$ دمای هوا در روز $i$ام است.)
همچنین تپسی معتقد است اگر دمای هوا:
+ بیشتر از ۱۵ درجه باشد باید «کولر» روشن کنیم.
+ در غیر این صورت باید «بخاری» روشن کنیم.
حال از شما میخواهیم نام وسیلهای (کولر یا بخاری) که باید در هر روز روشن کنیم را مشخص کنید.
# ورودی
در سطر اول ورودی، عدد صحیح و مثبت $n$ آمده، که نشاندهندهی تعداد روزهایی است که دمای آنها به ما داده شده است.
$$1 \leq n \leq 100$$
در سطر دوم ورودی، $n$ عدد صحیح (نه لزوماً مثبت) که با یک فاصله از هم جدا شدهاند، آمده است، که عدد $i$ام آن، دمای هوای روز $i$ام یا همان $t_i$ را نشان میدهد.
$$-100 \leq t_i \leq 100$$
# خروجی
خروجی $n$ سطر دارد، در سطر $i$ام ورودی، در صورتی که لازم است در روز $i$ام لازم است:
+ بخاری روشن کنیم، رشته `heater` را چاپ کنید.
+ کولر روشن کنیم، رشته `cooler` را چاپ کنید.
**توجه کنید سیستم داوری به بزرگ و کوچک بودن حروف حساس است.**
# مثال
## ورودی نمونه ۱
```
4
47 -11 26 15
```
## خروجی نمونه ۱
```
cooler
heater
cooler
heater
```
+ در روز اول دمای هوا ۴۷ درجه است و این دما بیشتر از ۱۵ درجه است. پس باید کولر روشن کنیم.
+ در روز دوم دمای هوا ۱۱- درجه است و این دما کمتر یا مساوی ۱۵ درجه است. پس باید بخاری روشن کنیم.
+ در روز سوم دمای هوا ۲۶ درجه است و این دما بیشتر از ۱۵ درجه است. پس باید کولر روشن کنیم.
+ در روز چهارم دمای هوا ۱۵ درجه است و این دما کمتر یا مساوی ۱۵ درجه است. پس باید بخاری روشن کنیم.
کولر یا بخاری
+ محدودیت زمان: ۱ ثانیه
+ محدودیت حافظه: ۲۵۶ مگابایت
----------
![توضیح تصویر](https://quera.org/qbox/view/ZfVwzQrlqu/problem_02.png)
الکس تاو (*Alex Tew*) یک ایده بسیار جالب دارد و میتوانید ماجرای اصلی آن را
[اینجا](https://en.wikipedia.org/wiki/The_Million_Dollar_Homepage)
بخوانید. اما داستان تحریف شده آن را در ادامه آوردهایم.
او در صفحه اول یک وبسایت یک بنر $n \times m$ پیکسل قرار داده است. او قیمت هر پیکسل را یک دلار قرار داده است.
اما او یک قانون دارد، آن هم این که هر کس میتواند یک بلوک $a \times b$ از این صفحه را بخرد که قبلا هیچ پیکسلی از آن به فروش نرسیده باشد.
حال امین میخواهد تعدادی از پیکسلها را بخرد به طوری که:
+ هیچ کس نتواند هیچ پیکسل دیگری بخرد.
+ کمترین هزینه را صرف این کار کند.
# ورودی
در سطر اول ورودی، عدد صحیح $T$ آمده، که تعداد تستکیسها را نشانمیدهد.
$$1 \leq T \leq 100$$
در $T$ سطر بعدی، در هر سطر چهار عدد صحیح $n$، $m$، $a$ و $b$ آمده که به ترتیب تعداد سطر و ستونهای سایت و ابعاد بلوکهای مجاز برای خریدن است.
$$1 \leq a \leq n \leq 1000, \quad \quad 1 \leq b \leq m \leq 1000$$
# خروجی
خروجی $T$ سطر دارد که کمترین تعداد بلوک لازم برای رسیدن به هدف امین را نشان میدهد.
# مثال
## ورودی نمونه ۱
```
3
5 7 1 1
10 10 2 3
5 7 2 1
```
## خروجی نمونه ۱
```
35
6
14
```
**تست اول.**
اگر صفحه اصلی $5\times7$ باشد و امکان خرید بلوکهای $1\times1$ باشد، باید همه $35$ خانه را بخرد تا کسی نتواند هیچ بلوک دیگری را بخرد.
![توضیح تصویر](https://quera.org/qbox/view/7AA75pIXzd/2-1.png)
**تست دوم.**
اگر صفحه اصلی $10\times10$ باشد و امکان خرید بلوکهای $2\times 3$ باشد، میتواند با خریدن $6$ بلوک مانند تصویر پایین، کاری کند که هیچکس نتواند بلوک دیگری بخرد. همچنین میتوان نشانداد حداقل $6$ بلوک لازم است.
![توضیح تصویر](https://quera.org/qbox/view/wU7CtGyBTq/2-2.png)
**تست سوم.**
اگر صفحه اصلی $5\times7$ باشد و امکان خرید بلوکهای $2\times 1$ باشد، میتواند با خریدن $14$ بلوک مانند تصویر پایین، کاری کند که هیچکس نتواند بلوک دیگری بخرد. همچنین میتوان نشانداد حداقل $14$ بلوک لازم است.
![توضیح تصویر](https://quera.org/qbox/view/NbZrsR7nPv/2-3.png)
یکمیلیون دلار
+ محدودیت زمان: ۱ ثانیه
+ محدودیت حافظه: ۲۵۶ مگابایت
----------
![توضیح تصویر](https://quera.org/qbox/view/XB4EolAfWg/problem_03.png)
در یک مدرسه $n$ دوست دور هم جمع شدهاند. این دوستها را میتوانیم با اعداد $1$ تا $n$ شمارهگذاری کنیم.
تعدادی رابطه «دهنلقی» بین این دوستان وجود دارد؛ یعنی اگر این رابطه از $u$ به $v$ وجود داشته باشد. اگر $u$ رازی از کسی را بداند در یک شب با $v$ در یک کافه قرار میگذارد و آن راز را به $v$ میگوید. توجه کنید رابطهی «دهنلقی» لزوماً دو طرفه نیست.
حال در یک روز، $s$ یک راز برای $t$ از زندگی شخصیاش میگوید. همچنین میدانیم که $t$ رابطه دهنلقی با $s$ ندارد.
توجه کنید انتقال یک راز از یکنفر به یک نفر دیگر یک روز طول میکشد. چون یک روز در قراری باید آن را بشنود و در یک روز دیگر این راز را منتقل کند.
قرارها نیز دو نفره هستند و به صورت گروهی برگزار نمیشود.
**حداقل** چند روز طول میکشد تا این راز مجدداً به $s$، توسط دوستی دیگر گفته شود و او متوجه فاش شدن رازش شود.
# ورودی
ورودی شامل $T$ تست نمونه است.
$$1 \leq T \leq 100 \, 000$$
برای هر تست، در سطر اول ورودی چهار عدد صحیح و مثبت $n$، $m$، $s$ و $t$ آمده است که به ترتیب نشاندهندهی تعداد دانشآموزان، تعداد رابطههای دهنلقی و شخص $s$ و $t$ است.
$$2 \leq n \leq 100 \, 000$$
$$0 \leq m \leq \min\{n(n - 1), 100 \, 000\}$$
$$1 \leq s \neq t \leq n$$
تضمین میشود $t$ رابطه دهنلقی با $s$ ندارد. در $m$ خط بعدی دو عدد صحیح $u$ و $v$ که با یک فاصله از هم جدا شدهاند آمده است و نشاندهندهی وجود رابطه دهنلقی از $u$ به $v$ است.
$$1 \leq u \neq v \leq n$$
تضمین میشود هر رابطه حداکثر یکبار ورودی داده شود همچنین $\sum n + m$ بهازای همه $T$ تست از ۱۰۰،۰۰۰ بیشتر نمیشود.
# خروجی
در تنها سطر خروجی یک عدد صحیح و مثبت چاپ کنید که حداقل تعداد روزی که باید بگذرد تا $s$ متوجه فاش شدن رازش شود.
اگر هیچوقت چنین اتفاقی نمیافتد `-1` چاپ کنید.
# مثال
## ورودی نمونه ۱
```
2
3 3 1 2
1 2
2 3
3 1
4 3 2 3
1 3
3 4
4 1
```
## خروجی نمونه ۱
```
2
-1
```
**تست اول.**
+ در روز اول ۱ رازش را به ۲ میگوید.
+ در روز دوم ۲ راز ۱ را به ۳ میگوید.
+ در روز سوم ۳ راز ۱ را به ۱ میگوید.
پس در روز سوم (بعد از گذشت ۲ روز)، شخص ۱ متوجه فاش شدن رازش میشود. بنابراین پاسخ این تست برابر ۲ است.
![توضیح تصویر](https://quera.org/qbox/view/PDqzQLbbhT/Slide4.PNG)
**تست دوم.**
+ در روز اول ۲ رازش را به ۳ میگوید.
+ در روز دوم ۳ راز ۲ را به ۴ میگوید.
+ در روز سوم ۴ راز ۲ را به ۱ میگوید.
در روز چهارم همه راز ۲ را میدانند اما هیچوقت ۲ متوجه نمیشود که رازش فاش شده است. بنابراین پاسخ مسئله ۱- خواهد بود.
![توضیح تصویر](https://quera.org/qbox/view/gYQRPyQlXT/Slide5.PNG)
رازداری در مدرسه
+ محدودیت زمان: ۱ ثانیه
+ محدودیت حافظه: ۲۵۶ مگابایت
----------
![توضیح تصویر](https://quera.org/qbox/view/7HdqsrDeOc/problem_04.png)
علی یک مثلث قائم الزاویه دارد. امین میخواهد مثلث علی را شناسایی کند. او میداند که طول اضلاع مثلث علی طبیعی است. همچنین میداند اندازه وتر این مثلث $n$ است. او میخواهد تعداد حالتهای ممکن برای مثلث علی را محاسبه کند. به او کمک کنید تا این کار را انجام دهد.
# ورودی
در سطر اول ورودی، عدد صحیح و مثبت $T$ آمده که نشان دهندهی تعداد تستکیسها است.
$$1 \leq T \leq 100$$
در $T$ سطر بعدی، در هر سطر، یک عدد صحیح و مثبت $n$ آمده است.
$$1 \le n \le 10^9$$
# زیر مسئلهها
| زیرمسئله | نمره | محدودیت |
|:---------------------:|:----------------:|:-------------------:|
| ۱ | ۱۰ | $n \leq 100$|
| ۲ | ۳۰ | $n \le 10000$|
| ۳ | ۶۰ | بدون محدودیت اضافی|
# خروجی
خروجی $T$ سطر دارد و در هر سطر، تعداد حالتهای مختلفی که میتواند مثلث علی داشته باشد را چاپ کنید.
# مثال
## ورودی نمونه ۱
```
3
3
5
13
```
## خروجی نمونه ۱
```
0
1
1
```
**تست اول.**
هیچ مثلث قائم الزاویهای با که اضلاع آن طبیعی باشند و طول وتر آن ۳ باشد وجود ندارد.
**تست دوم.**
تنها یک مثلث قائم الزاویه با اضلاع طبیعی وجود دارد و طول وتر آن برابر ۵ باشد. و آنهم مثلثی با طول اضلاع ۳، ۴ و ۵ است.
![توضیح تصویر](https://quera.org/qbox/view/RFYDEa1JTE/Slide6.png)
**تست سوم.**
تنها یک مثلث قائم الزاویه با اضلاع طبیعی وجود دارد و طول وتر آن برابر ۱۳ باشد. و آنهم مثلثی با طول اضلاع ۵، ۱۲ و ۱۳ است.
![توضیح تصویر](https://quera.org/qbox/view/2zEgywes0r/Slide7.PNG)
قائمشماری
+ محدودیت زمان: ۲ ثانیه
+ محدودیت حافظه: ۲۵۶ مگابایت
----------
![توضیح تصویر](https://quera.org/qbox/view/GIwKACH5dZ/problem_05.png)
امین $n$ دوست دارد. او دوستهایش را با اعداد $1$ تا $n$ شمارهگذاری کرده است. هر کدام از دوستهای امین از سه نظر «مهارت در فرانتاند» که با $f_i$، «مهارت در بکاند» که با $b_i$ و «پول نقد در حساب» که با $m_i$ نشانمیدهیم، برای دعوت در یک مهمانی کاندید شدهاند.
دوست $i$ام امین نسبت به دوست $j$ام امین «احساس حقارت» میکند. اگر در هر دو زمینه فرانتاند و بکاند مهارت کمتری داشته باشد. به عبارت دیگر $f_i < f_j$ و $b_i < b_j$ باشد، دوست $i$ام امین نسبت به دوست $j$ام «احساس حقارت» میکند. (توجه کنید میزان پول نقد در حساب اهمیتی ندارد!)
حال امین میخواهد تعدادی از دوستان خود را انتخاب کند، تا با هم استارتآپ بزنند. امین میخواهد طوری این جمع را انتخاب کند که:
+ هیچ دو نفری نسبت به هم احساس حقارت نکنند.
+ مجموع پول نقد در حساب این افراد بیشینه باشد.
به امین کمک کنید تا بیشترین مجموع پول نقدی که میتواند با کمک دوستانش برای تاسیس استارتاپ جمع کند را حساب کند.
# ورودی
در سطر اول ورودی، عدد صحیح و مثبت $n$ آمده است که تعداد دوستان امین را نشان میدهد.
$$1 \leq n \leq 100 \, 000$$
در $n$ سطر بعدی در هر سطر سه عدد صحیح $f_i$، $b_i$ و $m_i$ که با یک فاصله از هم جدا شدهاند و به ترتیب نشاندهنده مهارت در فرانت، مهارت در بکاند و پول نقد در حساب افراد را نشان میدهد.
$$1 \leq f_i, b_i, m_i \leq 10^9$$
# خروجی
در سطر اول خروجی، بیشترین مجموع پول نقدی که میتواند با کمک دوستانش برای تاسیس استارتاپ جمع کند را حساب کنید.
# مثال
## ورودی نمونه ۱
```
3
1 1 100
2 3 50
3 2 50
```
## خروجی نمونه ۱
```
100
```
امین میتواند دوست ۱ خود را برای تاسیس استارتآپ انتخاب کند. بنابراین میتواند ۱۰۰ تومان پول نقد داشته باشد.
توجه کنید دوست ۱ با هیچ دوست دیگری نمیتواند انتخاب شود، چون نسبت به آنها احساس حقارت میکند. همچنین مجموع پول نقد ۲ و ۳ حداکثر ۱۰۰ تومان است. پس تاسیس این استارتآپ با پول بیشتری ممکن نیست.
## ورودی نمونه ۲
```
4
1 1 100
2 3 50
3 2 50
3 3 50
```
## خروجی نمونه ۲
```
150
```
امین میتواند دوست ۲، ۳ و ۴ خود را برای تاسیس استارتآپ انتخاب کند. بنابراین میتواند ۱۵۰ تومان پول نقد داشته باشد.
توجه کنید ۱ و ۲ نسبت به ۳ احساس حقارت نمیکنند، چون باید در هر دو مبحث فرانتاند و بکاند مهارت کمتری داشتهباشند ولی در یکی از اینویژگیها برابر هستند.
همچنین با بررسی کردن حالتهای مختلف میتوان نشان داد که این عدد بیشینه است.
تأسیس استارتآپ
**کد شما باید روی آخرین نسخهی _MySQL_ قابل اجرا باشد.**
---
![بیدل](https://quera.org/qbox/view/wWnzOMwCfX/problem_06.png)
رضا در حال نوشتن برنامهای با نام *گمگشته* است. هدف این برنامه، کمک به افرادی است که در شهرهای مختلف راه گم میکنند. او پس از تلاشهای بسیار توانسته اطلاعات مکانهای ضروری برای این افراد را پیدا و آنها را ذخیره کند، اما برای استفاده از این دادهها در برنامه خود با مشکل مواجه شده است.
شما باید با نوشتن چند کوئری، مشکل او را حل کنید.
# جزئیات پروژه
دادههای اولیه برای تست نمونه را از [این لینک](/contest/assignments/44165/download_problem_initial_project/147516/) کنید.
ساختار جداول بهشرح زیر است:
1. جدول `places`: از این جدول برای نگهداری تمام اطلاعات مربوط به مکانها استفاده میشود.
|نام ستون|نوع|تعریف|
|:-------|:--|----:|
|`id`|`BIGINT`|آیدی|
|`address`|`VARCHAR(255)`|آدرس مکان|
2. جدول `geometries`: این جدول وظیفه نگهداری نقاط جغرافیایی این مکانها را بر عهده دارد.
|نام ستون|نوع|تعریف|
|:-------|:--|----:|
|`id`|`BIGINT`|آیدی|
|`place_id`|`BIGINT`|آیدی مکان|
|`point`|`POINT(x, y)`|نقطه مورد مورد نظر برروی نقشه (با واحد متر)|
هر نقطه مربوط به یک محل است.
# مطلوبات
کوئریهای زیر را طوری بنویسید که خروجی خواستهشده بهدست آید:
1. آدرس و فاصلهی مکانهایی با فاصلهی کمتر از ۸ کیلومتر تا نقطهی `(5728895.9321717, 4255004.0324245)` بهترتیب صعودی فاصله در قالب ستونهایی با نام `address` و `distance`
2. آدرس و فاصله تمام مکانهایی که تا مکانی با آدرس `فرودگاه` کمتر از ۲۰ کیلومتر فاصله دارند، بهترتیب صعودی فاصله در قالب ستونهایی با نام `address` و `distance`
+ تضمین میشود که دقیقاً یک `فرودگاه` در دادههای سیستم داوری وجود دارد.
3. در بین دادهها، نقاطی وجود دارند که در آدرس آنها واژهی `مترو` وجود دارد. فاصلهی همهی این نقاط را با یکدیگر برحسب متر بهترتیب صعودی فاصله بهدست آورید. ستونهای خروجی باید بهصورت زیر باشند:
|address1|address2|distance|
|:-------:|:--:|:----:|
اگر فاصلهی دو نقطه با یکدیگر برابر بود، آنها را ابتدا براساس مقدار `address1` و سپس براساس مقدار `address2` مرتب کنید.
# آنچه باید آپلود کنید
پس از طراحی کوئریها، آنها را در قالب زیر در یک فایل با پسوند `.sql` آپلود کنید.
```
-- Section1
Your first query here
-- Section2
Your second query here
-- Section3
Your third query here
```
گمگشته
![توضیح تصویر](https://quera.org/qbox/view/Ezvu0svNyb/problem_07.png)
*سلیب* بعد از مدتها سراغ سیستمعامل لینوکس خود رفته و میخواهد به سراغ هارد دیسک کامپیوتر خود برود و حسابی آن را بررسی کند. او میخواهد میزان فضای خالی دیسک و میزان فضای دیسک خود را بداند. همچنین از آنجا که بسیار خسته است میخواهد درصد فضای اشغال شده دیسک را نیز ببیند.
او که چیزی از ترمینال لینوکس و اسکریپتنویسی نمیداند از شما کمک خواسته تا برای او دو کار زیر را انجام دهید:
+ میزان فضای آزاد و میزان کل حافظه خود را در خط اول خروجی اسکریپت مشاهده کند. او میخواهد خروجی به فرمت زیر باشد:
```Terminal bash terminal
Free/Total memory: <mark class="red" title="میزان فضای خالی">224G</mark> / <mark class="red" title="میزان فضای کل">251G</mark>
```
+ درصد فضای اشغال شده دیسک را در خط دوم خروجی اسکریپت مشاهده کند. دقت کنید که چون *سلیب* از علامت درصد (%) متنفر است، نیاز دارد تا تنها **عدد** درصد فضای اشغالی را ببیند. خروجی باید به فرمت زیر باشد:
```Terminal bash terminal
Percentage: 7
```
## مثال
برای مثال اگر اسکریپت شما را مانند زیر اجرا کنیم:
```Terminal bash terminal
./disk-analyzer.sh
```
باید خروجی زیر را دهد:
```Terminal bash terminal
Free/Total memory: 224G / 251G
Percentage: 7
```
## پروژه اولیه
برای دریافت پروژه اولیه [این لینک](/contest/assignments/44165/download_problem_initial_project/147589/) را دانلود کنید. درون لینک ساختار فایلی زیر را مشاهده میکنید:
```
Disk-Analyzer
└── disk-analyzer.sh
```
راهحل خود را درون فایل `disk-analyzer.sh` پیادهسازی کنید.
## توجه کنید
+ اسکریپت شما باید فقط دو خط خروجی داشته باشد.
+ به تمامی فاصلههای خالی بین حروف خروجی دقت کنید.
+ از دستور `df -h /` برای مشاهده وضعیت فایل سیستم خواسته شده استفاده کنید.
+ در داوری این سوال اطلاعات فایل سیستمی را که روی`/` *mount* شده را میخواهیم.
+ دسترسی اجرا به فایل ارسالی شما به طور خودکار در سیستم داوری داده میشود.
نمونه خروجی دستور `df -h /` در سیستم داوری به صورت زیر است:
```
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/docker-8:<mark class="red" title="یک هش رندوم">XXX</mark> 6.0G 1.2G 4.9G 20% /
```
## نحوه ارسال
برای ارسال جواب دستورات خواسته شده را درون فایلی با نام `disk-analyzer.sh` وارد کنید و آن را انتخاب و سپس ارسال کنید.