Основная проблема:
long long int arr[n]={0};
Это недопустимый стандарт C ++, и если массив слишком большой, он не помещается в стек, вам нужно динамически распределить массив, желательно использовать std::vector
для этого, вот так
std::vector<long long int> arr{};
arr.resize(n);
Кроме того, вам, вероятно, следует проверить, находится ли каждый доступ к массиву внутри границ.