```ts
export function fleetHops(count: number, lts: number[], builds: number[], hop: number): number {
  if (hop === 0) {
    throw new Error("Hop of zero is not allowed.");
  }

  let totalHops = 0;
  for (let i = 0; i < count; i++) {
    const targetRelease = Math.min(lts[i], builds[i] + hop - 1);
    if (targetRelease > builds[i]) {
      throw new Error(`Device ${i} is already on the newest release.`);
    }
    totalHops += targetRelease - builds[i];
  }

  return totalHops;
}
```