у тебя миллиард багов внутри цикла. Вот, с поправками:
queue<int> ends; // очередь окончаний
int startTime = 0; // возможный старт
for (int i = 0; i < numPackets; i++) {
int arrival, duration;
cin >> arrival >> duration;
// выясняем, когда на самом деле можно стартовать пакет
int realStart = max(startTime, arrival);
// Извлекаем из очереди пакеты, которые обработаны на момент старта
while (!ends.empty() && ends.front() <= arrival) {
ends.pop();
}
if (ends.size() < bufferSize) {
// если на момент старта есть места в очереди, стартуем
cout << realStart << endl;
startTime = realStart + duration; // окончание обработки
ends.push(startTime);
} else {
// Очередь полна, пакет не может быть обработан
cout << -1 << endl;
}
}