CSES - Laatikot Tehtäväsi on pakata $n$ tavaraa laatikoihin. Jokaisessa laatikossa voi olla yksi tai kaksi tavaraa, ja lisäksi laatikon tavaroiden yhteispaino saa olla enintään $x$. Mikä on pienin mahdollinen laatikoiden määrä?

Esimerkiksi kun tavaroiden painot ovat $[7,2,3,9]$ ja $x=10$, tarvitset ainakin $3$ laatikkoa. Yksi ratkaisu on pakata yhteen laatikkoon tavarat, joiden painot ovat $7$ ja $2$, ja muut tavarat omiin laatikoihin.

Voit olettaa, että $n$ on välillä $1 \dots 10^5$ ja $x$ on välillä $1 \dots 10^9$. Jokaisen tavaran paino on enintään $x$.

Python

Toteuta tiedostoon boxes.py funktio count, jolle annetaan tavaroiden painot sekä painoraja $x$. Funktion tulee palauttaa tarvittava laatikoiden määrä.
def count(t,x):
    # TODO

if __name__ == "__main__":
    print(count([1,2,3,4],10)) # 2
    print(count([4,4,4,4],5)) # 4
    print(count([7,2,3,9],10)) # 3
    print(count([4,2,1,5,3],6)) # 3
Java

Toteuta tiedostoon Boxes.java metodi count, jolle annetaa tavaroiden painot sekä painoraja $x$. Funktion tulee palauttaa tarvittava laatikoiden määrä.
public class Boxes {
    public int count(int[] t, int x) {
        // TODO
    }

    public static void main(String[] args) {
        Boxes b = new Boxes();
        System.out.println(b.count(new int[] {1,2,3,4}, 10)); // 2
        System.out.println(b.count(new int[] {4,4,4,4}, 4)); // 4
        System.out.println(b.count(new int[] {7,2,3,9}, 10)); // 3
        System.out.println(b.count(new int[] {4,2,1,5,3}, 6)); // 3
    }
}