Bir firmanın paketleme servisinde, N adet dikdörtgen kutu yan yana durmaktadır. M. kututun boyu K[M] x 1’dir. Yanyana duran bu kutular daha büyük koliler içine koyulmak istenmektedir. Kutuların koyulduğu kolilerin boyu en az kutularınki kadar olmalıdır. Örneğin; [2, 1, 3] uzunluklarındaki kutuları 3x3 ebatındaki koliye yerleştirebilirsiniz.
Sizden, en fazla 2 adet koli kullanarak kutuların bulunduğu sırayı değiştirmeden tüm kutuları kolilemeniz ve aynı zamanda toplamda en az boyutta koli kullanmanız istenmektedir. Tüm kutuları kolilemeniz için kullanılan en fazla 2 kolinin toplam alanı en az kaçtır? Aşağıdaki varsayımları da düşünerek tasarladığınız etkili algoritmayı aşağıdaki sınıf tanımlamalarından birini kullanarak C++, Java, C# dillerinden biri ile yazınız.
- N [1..100000] aralığında bir tamsayıdır.
- K dizisinin her elemanı [1..10000] aralığında bir tamsayıdır.
- Kutular ve koliler 2 boyutlu olarak düşünülmelidir.
class Solution {
public:
int solution(vector<int>& K)
{
//Type here
}
};
class Solution
{
public int solution(int[] K)
{
//Type here
}
}