```ts
function crateFill(items: number, crates: number): number[] {
  if (crates <= 0) return [];

  const avg = Math.floor(items / crates);
  const remainder = items % crates;

  let result: number[] = Array(crates).fill(avg);

  for (let i = 0; i < remainder; i++) {
    result[i]++;
  }

  return result;
}

function crateTotal(sizes: number[]): number {
  return sizes.reduce((acc, size) => acc + size, 0);
}
```