مثلث خیام پاسکال


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

برنامه‌ای بنویسید که عدد nn را از ورودی بگیرد و nn سطر اول مثلث خیام پاسکال را نمایش دهد.

مثلث خیام پاسکال به این صورت است که ابتدا تنها یک عدد ۱ در سطر اول وجود دارد. سپس در سطر ii، ii عدد وجود دارد که عدد اول و آخر آن ۱، و هر کدام از اعداد دیگر جمع دو عدد بالایی خود می‌باشند. تصویر زیر، شش سطر اول مثلث خیام پاسکال می‌باشد.

ورودی🔗

در تنها سطر ورودی عدد nn می‌آید که نمایانگر تعداد سطرهایی است که باید چاپ شود. 1n100 1 \le n \le 100

خروجی🔗

خروجی شامل nn سطر است و باید در آن nn سطر اول مثلث خیام پاسکال را خروجی دهید. فاصله‌ی بین هر دو عدد که در یک سطر قرار دارند باید یک فاصله باشد.

مثال🔗

ورودی نمونه🔗

5
Plain text

خروجی نمونه🔗

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

زینی


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

یک جدول n×m n \times m داریم که در هر خانه‌اش عددی نوشته شده است.

یک برنامه نویس معمولی به یک خانه از جدول زینی می‌گوید اگر بتوان روی آن نشست! اما یک برنامه نویس نیمبو به یک خانه از جدول زینی می‌گوید اگر ۴ همسایه مجاور ضلعی‌اش موجود باشند و عددش از اعداد خانه های مجاور چپ و راستش بزرگ‌تر، و از اعداد خانه های مجاور بالا و پایینش کوچک‌تر باشد، و یا بالعکس (یعنی عددش از اعداد خانه‌های مجاور چپ و راستش کوچک‌تر و از اعداد خانه‌های مجاور بالا و پایینش بزرگ‌تر باشد).

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

ورودی🔗

خط اول ورودی شامل دو عدد nn و mm است.

در nn خط بعدی برنامه، سطر های جدول آمده اند. به طوری که هر خط شامل mm عدد است که نشان‌دهنده اعداد یک سطر از جدول هستند. اعداد جدول طبیعی و کوچکتر مساوی 109 10^{9} اند. 1n,m1001 \le n, m \le 100

خروجی🔗

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

مثال🔗

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

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

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

1
Plain text

فقط خانه وسط جدول زینی است. دقت کنید که بقیه خانه‌ها هیچ‌کدام شرط داشتن ۴ همسایه را ندارند.

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

4 4
1 2 4 1
7 4 1 1
1 3 2 4
1 4 1 1
Plain text

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

2
Plain text

خانه‌ای که در سطر سوم و ستون دوم قرار دارد، و هم‌چنین خانه‌ای که در سطر سوم و ستون سوم قرار دارد زینی‌اند.

آمار مسابقه


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

به تازگی شرکت پارس‌پک یک مسابقه برنامه نویسی برگزار کرده است. این مسابقه dd روز طول می‌کشد زمان شروع مسابقه 00:00:0000:00:00 روز اول است و زمان پایان مسابقه 23:59:5923:59:59 روز ddام است. در زمان برگزاری مسابقه تعدادی رویداد گزارش شده است. هر رویداد نشان می‌دهد که یک شرکت کننده به صفحه مسابقه وارد شده است. این رویداد به صورت کلی زیر به شما داده می‌شود.

[day:numbertime:hh:mm:ssname:user][ day: number | time: hh:mm:ss | name: user ]

همه این اطلاعات به شما داده می‌شود و از شما خواسته می‌شود برای هر روز یک گزارش بدهید. گزارش شما شامل سه عدد است:

  1. تعداد افرادی که آن روز وارد مسابقه شده اند.
  2. تعداد افرادی که برای اولین بار وارد مسابقه شده اند.
  3. تعداد افرادی که برای آخرین بار وارد مسابقه شده اند.

از شما خواسته می‌شود برای هر روز این گزارش‌ها را به دست آورید.

ورودی🔗

در اولین سطر ورودی دو عدد طبیعی nn و dd به شما داده می‌شود که به ترتیب نشان دهنده تعداد رویداد‌های مسابقه است و تعداد روز‌های برگزاری مسابقه است. 1n,d1001 \le n, d \le 100 در nn سطر بعدی در هر سطر یک خط به صورت زیر داده می‌شود. [day:numbertime:hh:mm:ssname:user][ day: number | time: hh:mm:ss | name: user ] که numbernumber یک عدد طبیعی از 11 تا dd است. hh:mm:sshh:mm:ss نشان دهنده لحظه آن رویداد است و useruser یک رشته حداکثر ۱۰ حرفی از حروف کوچک انگلیسی است که نشان دهنده نام شرکت کننده است. به طور مثال یک رویداد به صورت زیر است. [day:3time:17:06:43name:mahdi][ day: 3 | time: 17:06:43 | name: mahdi ] تضمین می‌شود که ترتیب رویداد‌ها به ترتیب زمان به شما داده می‌شود.

خروجی🔗

خروجی برنامه شما شامل dd خط است و خط iiام نشان دهنده گزارش شما برای روز iiام است. در هر خط سه عدد صحیح با یک فاصله از هم چاپ کنید که عدد اول نشان دهنده تعداد افرادی که آن روز وارد مسابقه شده اند و عدد دوم نشان دهنده تعداد افرادی که برای اولین بار وارد مسابقه شده اند و عدد سوم نشان دهنده تعداد افرادی که برای آخرین بار وارد مسابقه شده اند.

مثال🔗

ورودی نمونه🔗

5 2
[ day: 1 | time: 00:00:37 | name: mohammad ]
[ day: 1 | time: 01:14:41 | name: alireza ]
[ day: 1 | time: 15:12:17 | name: mohammad ]
[ day: 2 | time: 21:16:00 | name: maryam ]
[ day: 2 | time: 23:59:33 | name: alireza ]
Plain text

خروجی نمونه🔗

2 2 1
2 1 2
Plain text

روز اول: دو شرکت کننده به نام‌های mohammad و alireza وارد مسابقه شده اند. دو شرکت کننده به نام‌های mohammad و alireza برای اولین بار وارد مسابقه شده اند. یک شرکت کننده به نام mohammad آخرین باری است که وارد مسابقه می‌شود.

روز دوم: دو شرکت کننده به نام‌های maryam و alireza وارد مسابقه شده اند. یک شرکت کننده به نام maryam برای اولین بار وارد مسابقه شده اند. دو شرکت کننده به نام‌های maryam و alireza آخرین باری است که وارد مسابقه می‌شود.

آدرس‌یابی


سامانه Quera دارای nn صفحه است و آدرس (URL) هرکدام از این صفحات، از الگوی مشخصی پیروی می‌کند. به عنوان مثال آدرس صفحه معرفی یک شرکت (در بخش شرکت‌ها و فرصت‌های شغلی)، الگوی زیر را دارد:

https://quera.ir/careers/company/<company_name>
Plain text

که به جای <company_name> نام شرکت قرار می‌گیرد. مثلاً آدرس صفحه معرفی تیم هدهد در Quera به این صورت است:

https://quera.ir/careers/company/hodhod
Plain text

الگوی آدرس یک سؤال در بانک سؤالات دارای بیش از یک پارامتر است:

https://quera.ir/problemset/<category>/<problem_id>
Plain text

بنابراین آدرس سؤالی با شناسه ۷۲۵ در دسته سؤالات المپیاد برابر این مقدار است:

https://quera.ir/problemset/olympiad/725
Plain text

ممکن است در الگوی آدرس یک صفحه، هیچ پارامتری وجود نداشته باشد. مانند صفحه کلاس‌ها (شامل لیست کلاس‌هایی که کاربر در آن‌ها عضو است) که الگوی زیر را دارد:

https://quera.ir/overview
Plain text

روشن است که با هر پارامتری، آدرس تولیدشده از این الگو برابر با https://quera.ir/overview است.

می‌خواهیم با داشتن نام صفحات و مقادیر پارامترهای موجود در الگوی آدرس صفحات، آدرس دقیق صفحات را به دست آوریم.

ورودی🔗

در خط اول ورودی، عدد nn می‌آید (1n201 \leq n \leq 20). در nn خط بعد، در هر خط نام یک صفحه (با طول حداکثر ۱۰) و الگوی آدرس آن صفحه (با طول حداکثر ۱۰۰) با یک فاصله می‌آیند. نام صفحات از حروف کوچک انگلیسی تشکیل شده‌اند.

سپس در خط بعدی عدد tt می‌آید (1t501 \leq t \leq 50). در tt خط بعدی، در هر خط نام یک صفحه و مقادیر پارامترها به شکل parameter=value می‌آیند. توجه کنید که ممکن است یک یا چند تا از پارامترهای موردنیاز برای ساختن آدرس دقیق، داده نشده باشد. همچنین ممکن است یک یا چند پارامتر اضافی (که موردنیاز نیست) داده شده باشد.

نام پارامترها، از حروف کوچک و بزرگ انگلیسی و _ (underline) تشکیل شده است. نام و مقادیر پارامترها حداکثر ۱۰۰ حرف هستند.

خروجی🔗

در tt خط، مقادیر دقیق آدرس‌های خواسته‌شده را بنویسید.

در هر مورد، اگر نام صفحه خواسته‌شده در لیست صفحات وجود ندارد، خطای زیر را بنویسید:

[Error] url not found
Plain text

همچنین اگر مقدار یک یا چند پارامتر موردنیاز داده نشده است، خطای زیر را بنویسید:

[Error] missing parameter(s)
Plain text

و اگر پارامتری اضافه داده شده (جزء پارامترهای مورد نیاز نیست)، آن را نادیده بگیرید.

مثال ورودی🔗

4
company https://quera.ir/careers/company/<company_name>
problemset_problem https://quera.ir/problemset/<category>/<problem_id>
overview https://quera.ir/overview
test a/<b>/c
9
company company_name=torob
company company_name=!@#
problemset_problem category=olympiad problem_id=725
problemset_problem category=university problem_id=719
problemset_problem problem_id=719
overview
overview a=b
test b=z
TEST
Plain text

خروجی نمونه🔗

https://quera.ir/careers/company/torob
https://quera.ir/careers/company/!@#
https://quera.ir/problemset/olympiad/725
https://quera.ir/problemset/university/719
[Error] missing parameter(s)
https://quera.ir/overview
https://quera.ir/overview
a/z/c
[Error] url not found
Plain text

بیپ‌تونز


کد شما باید روی MySQL قابل اجرا باشد.

بخشی از پایگاه داده بیپ‌تونز که یک سایت آنلاین فروش آهنگ است به شما داده شده‌است.

در حال حاضر این پایگاه‌داده شامل دو جدول خواننده و آهنگ است.

هر خواننده دارای اسم، ایمیل، شماره حساب و میزان بالانس است. میزان بالانس پولی است که باید به خواننده در ازای فروش آهنگ‌هایش پرداخت کنیم.(در واقع بدهی ما به خواننده در این فیلد ذخیره می‌شود.)

جدول با نام singer دارای Schema ای به شکل زیر است: ‍‍‍

اسم ستون نوع تعریف ملاحظات
namename varcharvarchar اسم خواننده primarykeyprimary key
emailemail varcharvarchar ایمیل خواننده
account_numberaccount\_number varcharvarchar شماره حساب خواننده
balancebalance intint طلب خواننده از ما

هر آهنگ هم دارای خواننده، اسم آهنگ، اسم آلبوم، آهنگساز و میزان فروش می‌باشد.(برای راحتی کار فرض کنید هر آهنگ توسط فقط یک نفر خوانده شده‌است)

جدول با نام song دارای Schema ای به شکل زیر است:

اسم ستون نوع تعریف ملاحظات
idid intint ای‌دی رکورد primarykeyprimary key
namename varcharvarchar نام‌ آهنگ
singersinger varcharvarchar نام خواننده
producerproducer varcharvarchar نام‌ آهنگساز
albumalbum varcharvarchar آلبوم آهنگ
total_selltotal\_sell intint مجموع فروش آهنگ
‍‍

مطلوبات🔗

کوئری‌های sql خواسته‌شده از شما موارد زیر است: (توجه کنید که هر کوئری نمره‌ای جداگانه دارد و اگر کوئری یک قسمت را نتوانستید بزنید، کوئری‌هایی که حل کردید را بفرستید و قسمت آن کوئری را خالی بگذارید.)

  1. کوئری بنویسید که اسم تمام خواننده‌هایی که به آنها بدهکار نیستیم(بالانسشان صفر است) به ما بدهد.
  2. همانطور که می‌بینید جدولی برای آهنگسازان موجود نیست، این جدول را بسازید. این جدول تنها باید شامل یک ستون به اسم name باشد که نوع آن varchar با طول ۲۰ باشد و primary key این جدول هم باید همین ستون باشد. همچنین اسم این جدول producer می‌باشد. سپس تمامی آهنگساز‌هایی که در جدول آهنگ اسمشان ذکر شده‌است را به جدول آهنگسازها اضافه کنید. (چنانچه از چند کوئری برای این بخش استفاده می‌کنید، حتما در انتهای کوئری‌ها از ; استفاده کنید)
  3. کوئری بنویسید که از بین تمام خواننده‌ها، خواننده ای را پیدا کند که رتبه دوم بیشترین فروش را در کارهایش با آهنگسازی به نام ‍‍dr.dre داشته است و اسم و مقدار فروش آهنگ‌هایش با این آهنگساز به نام را برگردانید.

روش پیاده‌سازی🔗

در یک فایل با نام code.sql کد خود را قرار دهید و آن را فشرده (zip ) کنید و در سایت بارگذاری نمایید. کد شما باید به صورت زیر باشد(نام فایل zip مهم نیست).

-- Section1
   your first query here
-- Section2
   your second query here
-- Section3
   your third query here
Plain text