سلام دوست عزیز😃👋
به مسابقه «همکد ۵ - Software Engineering» خوش آمدی!
هرگونه ارتباط با سایر شرکتکنندگان و یا استفاده از ابزارهای تولید کد، مثل chatGPT
و... در مسابقات کوئرا ممنوع است و بعد از شناسایی از لیست شرکتکنندگان مسابقه حذف میشوید. سوالات و مشکلات خودتان را میتوانید از طریق قسمت «سوال بپرسید» با ما در میان بگذارید.
لینکهای مفید برای شرکت در مسابقه:
سوال «المپیکیوس» سوال پایگاهداده و سایر سوالات جنبهی الگوریتمی دارند. پیشنهاد میکنیم همهی سوالات را بخوانید و برای حل آنها تلاش کنید.
موفق باشید و بهتون خوش بگذره 😉✌
در زبان برنامهنویسی گولنگستان متغیرها حافظههای ۱، ۲، ۳ یا ۴ بایتی دارند. وقتی یک شئ با متغیر به حجمهای تعریف میکنیم. حافظهها با قاعدهی زیر در بستههای ۴ بایتی، پشت سرهم قرار میگیرند.
متغیرها را به ترتیب اضافه میکنیم. اگر متغیری که نوبت اضافه شدن آن است، به انتهای بستهی قبلی میتواند اضافه شود، آن را اضافه میکنیم و به سراغ متغیر بعدی (در صورت وجود) میرویم. اما اگر این متغیر نمیتواند به انتهای بستهی آخر اضافه شود، همهی فضای خالی آن را رها میکنیم و آن بسته را میبندیم (اصطلاحاً به این حافظههای تلف شده padding space میگویند). سپس در یک بستهی ۴ بایتی جدید، حافظه مورد نیاز متغیر بعدی را به بایتهای اول آن اختصاص میدهیم.
برای مثال فرض کنید متغیر داشته باشیم: ، و . در این صورت متغیر در ابتدای یک بسته قرار میگیرد، چون متغیر را نمیتوان به همان بسته اضافه کرد، پس ۳ بایت باقیماندهی بستهی اول را padding space در نظر میگیریم. سپس متغیر را در یک بستهی جدید قرار داده و در نهایت را در بایت اول یک بسته قرار میدهیم. (در آخرین بسته padding space نداریم.)
به این ترتیب وضعیت نوار حافظه به صورت زیر خواهد بود و در مجموع ۳ حافظه تلف شده خواهیم داشت.
حال میدانیم اگر ترتیب این سه متغیر را به این صورت که ، و عوض میکردیم. وضعیت نوار حافظه به این صورت تغییر میکرد و هیچ حافظهای تلف نمیشود.
حال به شما ترتیب اولیه حافظه متغیرها داده میشود از شما میخواهیم ترتیب آنها را طوری تغییر دهید که حافظههای تلف شده (padding space) کمینه شود و در نهایت این کمینه مقدار را چاپ کنید.
در سطر اول ورودی، عدد صحیح و مثبت آمده که تعداد سناریوها را نشان میدهد.
در سطر اول هر سناریو، عدد صحیح که نشان دهندهی تعداد متغیرها است داده میشود.
در سطر دوم هر سناریو، عدد صحیح که مقدار حافظهی متغیرها یعنی را نشان میدهد.
در سطر برای هر سناریو، کمینه حافظهی تلف شده (padding space) در بین تمام ترتیبهای مختلف برای متغیرها را چاپ کنید.
سناریو اول در صورت سوال توضیح داده شده.
یک نمونه از ترتیب بهینه، برای سناریو دوم، با ۱ حافظه تلف شده، به صورت زیر است:
تنها ترتیب ممکن، برای سناریو سوم، با ۰ حافظهی تلف شده، به صورت زیر است:
تنها ترتیب ممکن، برای سناریو چهارم، با ۴ حافظهی تلف شده، به صورت زیر است: