سلیب یک فایل بایتی روی هاردش دارد. او میخواهد حجم تقریبی این فایل را به روشی «خوانا برای انسان» نمایش دهد.
هر نمایش «خوانا برای انسان» به فرم «U
» است. که از دو قسمت:
U
نمایش داده شد، یک رشته از حروف کوچک و بزرگ انگلیسی است و برابر B
، KiB
یا MiB
است.برای مثال، نمایش 37MiB
یک نمایش «خوانا برای انسان» است. که قسمت «عدد» 37
و قسمت «یکا» MiB
است. ولی 12byte
(چون byte
جزو کلمات مجاز نیست.) یا 40000KiB
(عدد بیشتر از ۱۰۲۳ است.) «خوانا برای انسان» نیست.
همچنین میدانیم که:
هر 1KiB
معادل 1024B
است.
هر 1MiB
معادل 1024KiB
است.
توجه کنید همیشه نمیتوانیم مقدار دقیق حجم یک فایل را به روش «خوانا برای انسان» نمایش دهیم و گاهی مجبور میشویم مقدار آن را تقریب بزنیم. از شما میخواهیم در تقریب زدن، همواره رو به پایین گرد کنید. برای بهتر متوجه شدن این موضوع به مثالها توجه کنید.
در سطر اول ورودی، عدد صحیح و مثبت داده میشود که نشاندهندهی تعداد تستکیسها است.
در سطر بعدی، در هر سطر یک عدد مثل داده میشود که نشاندهندهی ظرفیت فایل سلیب است.
خروجی سطر دارد. در هر سطر حجم فایل مربوط به آن تست را به روش «خوانا برای انسان» چاپ کنید.
توجه کنید سیستم داوری نسبت به بزرگ و کوچک بودن حروف حساس است.
با توجه به محدودیتهای سوال، میتوان ثابت کرد همواره پاسخ مسئله موجود و یکتا است.
تست اول.
ظرفیت فایل ۲۹ بایت است. بنابراین نمایش «خوانا برای انسان» آن به صورت 29B
است.
تست دوم.
ظرفیت فایل ۱۴۰۱ بایت است. باتوجه به اینکه «عدد» در نمایش «خوانا برای انسان» باید در بازهی ۱ تا ۱۰۲۳ باشد، نمایش 1401B
یا 0MiB
درست نیست و نمایش درست 1KiB
است.
تست سوم.
ظرفیت فایل ۱۴۵۱۰۶۲۹ است. با توجه به محدودیت «عدد» در نمایش «خوانا برای انسان» باید از یکای MiB
استفاده کنیم. نزدیکترین عدد ۱۳.۸ است ولی باید ظرفیت یک عدد صحیح و مثبت باشد و چون باید رو به پایین تقریب بزنیم 13MiB
را انتخاب میکنیم.
گز یک شهر نامتناهی است. خیابانهای این شهر به صورت زیر است.
خیابانهای این شهر را میتوان روی صفحه مختصات دو بعدی به صورت زیر معرفی کرد.
میدانیم سعید در تقاطعی با مختصات و سجاد در تقاطعی با مختصات است.
سعید میخواهد بداند کمترین فاصلهای که باید در خیابانهای گز طی کند تا به سجاد برسد چقدر است.
در سطر اول ورودی، عدد صحیح و مثبت آمده است که تعداد تستهای ورودی را نشان میدهد.
در سطر اول هر، چهار عدد صحیح ، ، و که با یک فاصله از هم جدا شدهاند، آمده است؛ که نشاندهندهی مختصات تقاطع هایی است که سعید و سجاد در آن قرار دارند.
تضمین میشود که و مختصات دو تقاطع در شهر گز باشند.
خروجی سطر دارد. در هر سطر، کمترین مسافتی که باید سعید طی کند تا به سجاد برسد را چاپ کنید.
باتوجه به اینکه پاسخ شما ممکن است عددی اعشاری باشد، زمانی عدد خروجی شما نمره کامل را دریافت میکند که با دقت حداقل ۳ رقم بعد از اعشار، پاسخ شما دقیق باشد.
شکل تست اول.
کوتاهترین مسیر بین این دو تقاطع با یک جاده به شکل یک خط مستقیم است.
شکل تست دوم.
کوتاهترین مسیر بین این دو تقاطع با رنگ آبی مشخص شده است و طول آن برابر است با:
شکل تست سوم.
کوتاهترین مسیر بین این دو تقاطع با یک جاده به شکل یک خط مستقیم است. توجه کنید که مرکز شهر هم میتواند یک تقاطع باشد.
شکل تست چهارم.
کوتاهترین مسیر بین این دو تقاطع صفر در نظر گرفته میشود. چون این دو تقاطع برهم منطبق هستند.
کشی رشته باینری به طول دارد. در هر عملیات میتواند یکی از این رشتهها را انتخاب کرده و پیشوندی از آن را برعکس کند. (کاراکترهای 0
را به 1
و 1
را به 0
تبدیل کنیم.)
او میخواهد همه این رشتهها را باهم برابر کند. شما باید برای سناریوی مختلف، کمترین عملیات لازم برای رسیدن به این هدف را پیدا کنید.
در سطر اول ورودی عدد صحیح و مثبت آمده است که نشان دهندهی تعداد سناریو هایی است که شما باید به آنها پاسخ دهید.
در سطر اول هر سناریو، دو عدد صحیح و مثبت و که با یک فاصله از هم جدا شدهاند؛ آمده است. در سطر بعدی هر سناریو، در هر سطر یک رشته به طول آمده است.
تضمین میشود جمع تعداد کاراکترهای رشتهها از بیشتر نمیشود.
خروجی برنامه شامل خط است که در خط ام باید یک عدد صحیح و مثبت که برابر کمترین تعداد عملیات لازم برای برابر کردن همهی رشتهها در سناریوی ام است را چاپ کنید.
تست اول.
تنها یک رشته داریم، پس نیازی به انجام عملیات نیست. بنابراین پاسخ مسئله برابر ۰ خواهد بود.
تست دوم.
میتوانیم به ترتیب علمیاتهای زیر را انجام دهیم.
بنابراین پاسخ مسئله برابر ۱ خواهد بود.
تست سوم.
میتوانیم به ترتیب عملیاتهای زیر را انجام میدهیم.
بنابراین پاسخ مسئله برابر ۵ خواهد بود.
در گذشتهای نه چندان دور کشور داشتیم که یکی از آنها آلمان نازی بود و به رهبری هیتلر به دنبال فتح جهان بودند. برای راحتی، کشورها و روابط بین آنها را به شکل گرافی راسی و یالی نشان میدهیم که راسها نشان دهندهی کشورها و یالها نشان دهندهی همسایگی دو طرفه بین کشورها است.
در ابتدا کشور ام قدرت را دارد و یکی از آنها آلمان نازی است. هیتلر در جهت کشورگشایی هر بار میتواند یک کشور جدید که حداقل یکی از همسایههایش فتح شده را انتخاب کند، و اگر قدرت آلمان نازی بیشتر اکید از آن بود، آن کشور را فتح کند. پس از فتح یک کشور، به اندازهی قدرت آن کشور، به قدرت آلمان نازی اضافه میشود.
سوالی که آن زمان فکر سیاست مداران را به خود درگیر کرده بود، این بود که آیا هیتلر میتواند موفق شود همهی کشورها را فتح کند یا خیر؟ و اگر نمیتواند، حداقل چه مقدار باید قدرت آلمان نازی افزایش یابد تا بتواند به این هدف برسد؟ اما از آنجایی که هیتلر مخفی است و مکان اولیه آلمان نازی را نمیدانیم، شما باید به ازای هر کشور، این مقدار را محاسبه کنید!
در سطر اول ورودی، دو عدد و به ترتیب نشاندهندهی تعداد کشورها و تعداد روابط همسایگی بین کشورها میآیند.
در سطر دوم ورودی، اعداد که قدرت کشورها را نشان میدهند، میآیند.
در هر کدام از سطر بعدی، دو عدد و میآیند که نشان دهندهی یالی بین راس ام و راس ام است.
تضمین میشود گراف داده شده همبند باشد.
در تنها سطر خروجی، باید عدد با فاصله از هم چاپ کنید که عدد ام حداقل مقداری است که باید به کشور ام اضافه کنیم تا در صورتی که آلمان نازی این کشور باشد، بتواند همهی کشورها را فتح کند. (ممکن است این مقدار باشد.)
اگر مکان اولیه آلمان نازی:
کشور ۱ باشد و با قدرت شروع به کار کند، ابتدا می تواند کشور ۲ را فتح کند تا قدرتش شود. سپس میتواند کشور ۳ را فتح کند و به هدفش برسد. بنابراین باید حداقل واحد به قدرتش اضافه کند.
کشور ۲ باشد و با قدرت شروع به کار کند، ابتدا می تواند کشور ۱ را فتح کند تا قدرتش شود. سپس میتواند کشور ۳ را فتح کند و به هدفش برسد. بنابراین باید حداقل واحد به قدرتش اضافه کند.
کشور ۳ باشد و با قدرت شروع به کار کند، ابتدا می تواند کشور ۲ را فتح کند تا قدرتش شود. سپس میتواند کشور ۱ را فتح کند و به هدفش برسد.
میتوان نشان داد اگر با قدرتی کمتر از این مقدار شروع کند، نمیتواند به هدفش برسد.
اگر مکان اولیه آلمان نازی:
کشور ۱ باشد و با قدرت شروع به کار کند، ابتدا میتواند کشور ۲ را فتح کند تا قدرتش شود. سپس میتواند کشور ۶ را فتح کند تا قدرتش شود. اکنون میتواند به ترتیب کشورهای ۳، ۴، ۵ و ۷ را فتح کند و به هدفش برسد. بنابراین باید حداقل واحد به قدرتش اضافه کند.
کشور ۲ باشد و با قدرت شروع به کار کند، ابتدا میتواند کشور ۱ را فتح کند تا قدرتش شود. سپس همان روال کشور ۱ را میتوان ادامه داد.
کشور ۳ باشد و با قدرت شروع به کار کند، ابتدا میتواند کشور ۷ را فتح کند تا قدرتش شود. اکنون میتواند به ترتیب کشور ۶، ۵، ۴، ۲ و ۱ را فتح کند و به هدفش برسد.
کشور ۴ باشد و با قدرت شروع به کار کند، میتواند به ترتیب کشورهای ۲، ۱، ۵، ۶، ۳ و ۷ را فتح کند و به هدفش برسد.
کشور ۵ باشد و با قدرت شروع به کار کند، ابتدا میتواند کشور ۷ را فتح کند تا قدرتش شود. سپس میتواند کشور ۶ را فتح کند تا قدرتش شود. سپس میتواند به ترتیب کشورهای ۴، ۳، ۲ و ۱ را فتح کند و به هدفش برسد.
کشور ۶ باشد و با قدرت شروع به کار کند، ابتدا میتواند به ترتیب کشورهای ۲، ۳، ۷، ۵ و ۱ را فتح کند تا قدرتش شود. در نهایت میتواند کشورهای ۴ را فتح کند و به هدفش برسد.
کشور ۷ باشد و با قدرت شروع به کار کند، ابتدا میتواند کشور ۵ را فتح کند تا قدرتش شود. سپس میتواند کشور ۳ را فتح کند تا قدرتش شود. سپس میتواند کشور ۶ را فتح کند تا قدرتش شود. در نهایت میتواند به ترتیب کشورهای ۴، ۲ و ۱ و به هدفش برسد.
میتوان نشان داد اگر با قدرتی کمتر از این مقدار شروع کند، نمیتواند به هدفش برسد.
جایگشتی از اعداد تا در اختیار داریم که عددی زوج است. در هر مرحله مشتلی دو عضو مجاور را انتخاب میکند که عضو سمت چپ بزرگتر از عضو سمت راست باشد، سپس هر دو را حذف کرده و باقی اعضای آرایه را به هم میچسباند.
حال مشتلی میخواهد تعداد روشهای پاک کردن تمام اعضای جایگشت را پیدا کند. از آنجایی که ممکن است این مقدار بیش از حد بزرگ شود، مشتلی از شما میخواهد که باقیمانده این مقدار بر را برای او پیدا کنید.
در اولین سطر ورودی، عدد طبیعی زوج نمایانگر طول جایگشت آمده است.
در سطر بعد جایگشت آمده است.
در تنها سطر خروجی، باقیمانده تعداد روشهای حذف تمام اعضای جایگشت ورودی بر را چاپ کنید.
۳ روش حذف تمام اعضا:
۹ روش حذف تمام اعضا:
آشمز که با حقوق جدیدش دنبالهی عضوی از اعداد صحیح را خریده است، با اشتیاق دنبالهاش را به کشی نشان داد. اما کشی در یک ضد حال به آشمز گفت تعداد ۴۲ های دنباله کم است! پس تصمیم گرفتند با انجام تعدادی عملیات دنباله را طوری تغییر دهند تا تعداد ۴۲ های آن زیاد شود.
آنها میتوانند عملیات های زیر را انجام دهند:
در این سوال شما باید به آشمز و کشی کمک کنید و با ورودی گرفتن دنبالهی اولیه، بیشینه تعداد تکرار های ممکن ۴۲ را برای آنها محاسبه کنید.
دقت کنید که ترتیب و تعداد عملیاتها دلخواه است و اعداد دنباله، پس از انجام یک عملیات ممکن است منفی شوند.
در سطر اول ورودی، عدد نشان دهندهی طول دنباله آمده است.
در سطر دوم ورودی، عدد صحیح به نام آمده که وضعیت اولیه دنباله را نشان میدهد.
در تنها سطر خروجی باید بیشینه تعداد تکرار های ممکن ۴۲ پس از انجام تعداد دلخواهی عملیات را چاپ کنید.
در این مثال اگر آشمز روی پیشوند به طول ۱ و کشی روی پیشوند به طول ۱ عملیات انجام دهد، تمام اعضای دنباله ۴۲ خواهند شد.
در این مثال اگر آشمز سه بار روی پیشوند به طول ۵ عملیات انجام دهد، دنباله به تبدیل خواهد شد که تعداد ۴۲ های آن ۴ است. میتوان نشان داد به هر نحوی عملیات انجام دهیم، تعداد ۴۲ ها بیشتر از ۴ نخواهد شد.
در یک رستوران غذاها را به صورت سلف سرویس در یک ردیف قرار میدهند. میزان کالری هر غذا را میتوان با یک عدد صحیح نشان داد. (این عدد میتواند منفی باشد.)
در واقع میتوان وضعیت کالریها را به صورت یک دنباله از اعداد صحیح در نظر بگیریم. که کالری غذای ام را نشان میدهد.
در یک روز نفر وارد رستوران میشوند و میخواهند این غذاها را بخورند. هر کس یک بازه از این دنباله را انتخاب میکند و همهی غذاهای این بازه را میخورد. هر کس باید یک بازه ناتهی انتخاب کند و نباید بازه هیچ دو نفری اشتراک داشته باشد.
صاحب رستوران میخواهد بداند حداکثر کالری که این نفر میتوانند بخورند را پیدا کند. اما چون نمیداند مقدار چقدر است؛ از شما میخواهد بهازای همهای اعداد طبیعی از تا این مقدار را محاسبه کنید.
در سطر اول ورودی، عدد صحیح و مثبت آمده که تعداد غذاها را نشان میدهد.
در سطر دوم ورودی، عدد صحیح که با یک فاصله از هم جداشدهاند آمده است که عدد ام آن برابر بوده و نشاندهندهی میزان کالری غذای ام است.
خروجی سطر دارد، در سطر ام، حداکثر میزان کالری که با آمدن نفر به رستوران میتوان بدست آورد را محاسبه کنید.