میانگین بیت ها


-> محدودیت زمانی: 3 ثانیه <-

-> محدودیت حافظه: 256 مگابایت <-


عدد n داده شده است. میانگین تعداد بیت های اعداد 0 تا n - 1 را خروجی دهید. تعداد بیت یعنی تعداد ارقام در نمایش دودویی (binary) عدد. دقّت داشته باشید نباید در نمایش دودویی عدد در سمت چپ عدد صفر باشد. (به استثنای نمایش دودویی عدد 0 که 0 می باشد.)

ورودی🔗

در تنها خطّ ورودی عدد صحیح نامنفی n داده شده است. (n < 1000)

خروجی🔗

در تنها خطّ خروجی، میانگین تعداد بیت های اعداد 0 تا n - 1، یا به عبارتی دیگر حاصل تقسیم مجموع تعداد ارقام اعداد 0 تا n - 1 در نمایش دودویی بر تعدادشان را چاپ کنید. (دقّت کنید در صورتی که حاصل عددی اعشاری باشد و بیش از 7 رقم اعشار داشته باشد، باید تا 7امین رقم اعشار از آن را چاپ کنید یا به عبارتی دیگر با دقّت 7 رقم اعشار عدد را رو به پایین گرد کنید و در صورتی که عدد خروجی کمتر از 7 رقم اعشار داشته باشد، باید دقیقا به همان مقدار اعشار را چاپ کنید.(یعنی صفر بی مورد آخر عدد نذارید :D ) )

مثال 1🔗

ورودی
6
خروجی
2

مثال 2🔗

ورودی
4
خروجی
1.5

در مثال 1، نمایش دودویی اعداد 0 تا n - 1 یعنی 0 تا 5 به این صورت است:

0: 0   : 1 bit
1: 1   : 1 bit
2: 10  : 2 bits
3: 11  : 2 bits
4: 100 : 3 bits
5: 101 : 3 bits
Plain text

که جمع تعداد بیت ها 12، و تقسیم 12 بر تعداد یعنی 6 می شود 2.

عبارت ریاضی


-> محدودیت زمانی: 2ثانیه <-

-> محدودیت حافظه: 256 مگابایت <-


تعدادی نامرتّب از اعداد صحیح نامنفی داده شده است. می خواهیم با قوانین زیر آن را بصورت یک عبارت ریاضی بازنویسی کنیم:

  • زمانی بین دو عدد علامت جمع (+) قرار می گیرد که عدد سمت چپ کوچکتر از عدد سمت راستش باشد.
  • زمانی بین دو عدد علامت تفریق (-) قرار می گیرد که عدد سمت راست کوچکتر از عدد سمت چپش باشد.
  • و تنها زمانی بین دو عدد علامت ضرب (*) قرار می گیرد که دو عدد برابر باشند.

برنامه ای بنویسید که حاصل عبارت ریاضی که از اعداد داده شده بده بدست می آید را محاسبه کند.

ورودی🔗

در خطّ اوّل ورودی، عدد طبیعی n، تعداد اعداد (n > 1 و n < 100)

در n خطّ بعدی در هر خط یک عدد از اعداد، داده می شود. (هر عدد کوچکتر از 100000)

خروجی🔗

در تنها خطّ خروجی حاصل عبارت ریاضی که از دنباله نامرتّب اعداد بدست می آید را چاپ کنید.

مثال🔗

ورودی
9
1
0
2
2
78557
2
1
1
0
خروجی
78559

عبارتی که از دنباله نامرتّب اعداد بالا بدست می آید 0-1*1-2-78557+2*2+0-1 است که حاصلش 78559 می شود.

7.ع.ا.م


-> محدودیت زمانی: 2 ثانیه <-

-> محدودیت حافظه: 256 مگابایت <-


دنباله 510510, 570570, 690690, 746130, 870870, 881790, 903210,... را در نظر بگیرید. تمامی اعضای این دنباله فقط از ضرب 7 عدد اوّل متفاوت تشکیل شده اند که به اختصار به هریک از آن ها 7.ع.ا.م می گوییم.

تجزیه به عوامل اوّل 4 عدد اوّل این دنباله به این شکل است:

510510 = 2 * 3 * 5 * 7 * 11 * 13 * 17
570570 = 2 * 3 * 5 * 7 * 11 * 13 * 19
690690 = 2 * 3 * 5 * 7 * 11 * 13 * 23
746130 = 2 * 3 * 5 * 7 * 11 * 17 * 19
Plain text

برنامه ای بنویسید که عددی بگیرد و نزدیک ترین 7.ع.ا.م به آن را پیدا کند. (در صورتی که فاصله دو 7.ع.ا.م تا عدد خواسته شده یکسان بود، عدد کوچکتر را پاسخ در نظر بگیرید.)

ورودی🔗

در تنها خطّ ورودی، یک عدد طبیعی داده می شود. (تضمین می شود عدد ورودی از 25 امین عدد دنباله مرتّب شده اعداد 7.ع.ا.م کمتر است.)

خروجی🔗

در تنها خطّ خروجی، نزدیک ترین 7.ع.ا.م به عدد ورودی را چاپ کنید.

مثال 1🔗

ورودی
142441
خروجی
510510

مثال 2🔗

ورودی
1492001
خروجی
1504230

دستکاری متن


-> محدودیت زمانی: 3 ثانیه <-

-> محدودیت حافظه: 512 مگابایت <-


متنی چند خطّی داده شده است که ممکن است هر نوع کاراکتری در آن باشد. (مثل حروف کوچک و بزرگ انگلیسی، اعداد، فاصله، کاراکترهای خاص مثل !، @، #، $ و...)

برنامه ای بنویسید که تغییرات زیر را روی متن انجام دهد و سپس آن را در خروجی بدهد:

  1. تمامی کاراکترهایی از متن را که نه عدد هستند، و نه حروف کوچک یا بزرگ انگلیسی، از متن حذف کند.
  2. اگر طول چند خط از متن داده شده، پس از حذف کاراکتر های اضافی (انجام مرحله 1) برابر بود، چند خط را یکی کند. (خطوط به ترتیبی که در ورودی داده شده اند باید در یک خط قرار بگیرند. برای مثال اگر دو خطّ salam و sOsKi را داشته باشیم، و خطّ salam در ورودی قبل از sOsKi آمده باشد، در یک خطّ salamsOsKi را خواهیم داشت، و اگر sOsKisalam را در نظر بگیرید، غلط است چون به ترتیب ورودی نیامده است.)
  3. خطوط متن را بر اساس طول هر خط بصورت صعودی مرتّب کند. (یعنی بالاترین خط، کوتاهترین خط باشد و پایین ترین خط بلند ترین خط باشد.)

ورودی🔗

در خطّ اوّل ورودی، عدد طبیعی n، تعداد خطوط متن آمده است. (n < 100000) در n خطّ بعدی، و در هر خط یک سطر، از متن داده می شود. (طول هر خط از 300 کاراکتر کمتر است.)

خروجی🔗

متنی که با شرایط گفته شده ویرایش داده اید را در خروجی چاپ کنید. (هر سطر از متن در یک خط مجزّای از خروجی)

مثال🔗

ورودی
4
Salam :D
ChiKar Mikoni
Coding ? ? ? ? ! $ @ ! ? :-)
mOzAhemeT nemiSham BoRo code BezAn, Bye
خروجی
SalamDCodingChiKarMikoni
mOzAhemeTnemiShamBoRocodeBezAnBye

پانگرام


-> محدودیت زمانی: ثانیه <-

-> محدودیت حافظه: مگابایت <-


یک پانگرام، عبارت یا رشته ای است که در آن تمامی حروف یک زبان (بدون توجّه به کوچک یا بزرگ بودن حرف) بکار رفته باشد. برای مثال در زبان انگلیسی یک پانگرام باید شامل هر 26 حرف این زبان باشد.

متنی در زبان انگلیسی داده شده است. این متن می تواند شامل حروف بزرگ و کوچک انگلیسی، ارقام و کاراکترهای !، @، #، $ و... می باشد.

برنامه ای بنویسید که کوتاه ترین پانگرام موجود در متن را بیابد، یا اگر در متن پانگرام وجود ندارد، بگوید.

ورودی🔗

در یک خط متن ورودی داده می شود.

تمامی کاراکترهای موجود در متن، در محدوده 256 تایی ASCII می گنجد.

متن می تواند به اندازه حداکثر 100 کاراکتر طول داشته باشد، امّا فقط در یک خط داده می شود.

خروجی🔗

کوتاه ترین پانگرام موجود در متن را در یک خط چاپ کنید. در صورتی که در متن هیچ پانگرامی وجود نداشت، در خروجی عبارت "This isn't a pangram" را چاپ کنید.

اگر دو پانگرام در متن با کمترین طول ممکن وجود داشتند، پانگرامی را چاپ کنید که به ابتدای متن نزدیک تر است.

مثال 1🔗

ورودی
Everyone knows about that infamous Quick-Brown-Fox (the one who jumped over some lazy ignoramus of a dog so many years ago).
خروجی
Quick-Brown-Fox (the one who jumped over some lazy ig

مثال 2🔗

ورودی
The five boxing wizards jump quickly
خروجی
The five boxing wizards jump quickly