- محدودیت زمان: ۱ ثانیه
- محدودیت حافظه: ۲۵۶ مگابایت
در زبان برنامهنویسی گولنگستان متغیرها حافظههای ۱، ۲، ۳ یا ۴ بایتی دارند. وقتی یک شئ با $n$ متغیر به حجمهای $s_1, s_2, \dots, s_n,$ تعریف میکنیم. حافظهها با قاعدهی زیر در بستههای ۴ بایتی، پشت سرهم قرار میگیرند.
متغیرها را به ترتیب اضافه میکنیم. اگر متغیری که نوبت اضافه شدن آن است، به انتهای بستهی قبلی میتواند اضافه شود، آن را اضافه میکنیم و به سراغ متغیر بعدی (در صورت وجود) میرویم. اما اگر این متغیر نمیتواند به انتهای بستهی آخر اضافه شود، همهی فضای خالی آن را رها میکنیم و آن بسته را میبندیم (اصطلاحاً به این حافظههای تلف شده padding space میگویند). سپس در یک بستهی ۴ بایتی جدید، حافظه مورد نیاز متغیر بعدی را به بایتهای اول آن اختصاص میدهیم.
برای مثال فرض کنید $n = 3$ متغیر داشته باشیم: $s_1 = 1$، $s_2 = 4$ و $s_3 = 1$. در این صورت متغیر $s_1$ در ابتدای یک بسته قرار میگیرد، چون متغیر $s_2$ را نمیتوان به همان بسته اضافه کرد، پس ۳ بایت باقیماندهی بستهی اول را padding space در نظر میگیریم. سپس متغیر $s_2$ را در یک بستهی جدید قرار داده و در نهایت $s_3$ را در بایت اول یک بسته قرار میدهیم. (در آخرین بسته padding space نداریم.)
به این ترتیب وضعیت نوار حافظه به صورت زیر خواهد بود و در مجموع ۳ حافظه تلف شده خواهیم داشت.
حال میدانیم اگر ترتیب این سه متغیر را به این صورت که $s_1 = 4$، $s_2 = 1$ و $s_3 = 1$ عوض میکردیم. وضعیت نوار حافظه به این صورت تغییر میکرد و هیچ حافظهای تلف نمیشود.
حال به شما ترتیب اولیه حافظه متغیرها داده میشود از شما میخواهیم ترتیب آنها را طوری تغییر دهید که حافظههای تلف شده (padding space) کمینه شود و در نهایت این کمینه مقدار را چاپ کنید.
ورودی
در سطر اول ورودی، عدد صحیح و مثبت $t$ آمده که تعداد سناریوها را نشان میدهد.
$$1 \leq t \leq 1000$$
در سطر اول هر سناریو، عدد صحیح $n$ که نشان دهندهی تعداد متغیرها است داده میشود.
$$1 \leq n \leq 100$$
در سطر دوم هر سناریو، $n$ عدد صحیح که مقدار حافظهی متغیرها یعنی $s_1, s_2, \dots, s_n,$ را نشان میدهد.
$$1 \leq s_i \leq 4$$
خروجی
در $t$ سطر برای هر سناریو، کمینه حافظهی تلف شده (padding space) در بین تمام ترتیبهای مختلف برای متغیرها را چاپ کنید.
مثالها
ورودی نمونه ۱
4
3
1 4 1
4
4 2 3 4
1
1
5
3 3 3 3 3
خروجی نمونه ۱
0
1
0
4
سناریو اول در صورت سوال توضیح داده شده.
یک نمونه از ترتیب بهینه، برای سناریو دوم، با ۱ حافظه تلف شده، به صورت زیر است:
تنها ترتیب ممکن، برای سناریو سوم، با ۰ حافظهی تلف شده، به صورت زیر است:
تنها ترتیب ممکن، برای سناریو چهارم، با ۴ حافظهی تلف شده، به صورت زیر است:
ارسال پاسخ برای این سؤال