Программа выдаёт странные, случайные значения при запуске - PullRequest
0 голосов
/ 16 января 2019

Я работаю над задачей программирования, и когда я печатаю значения, которые обнаруживает моя функция "взорвать", она выводит некоторые странные значения, которые даже не сохраняются в моем векторе, такие как "80" и "112". Кто-нибудь может помочь найти, почему он выводит значения 80 и 112, когда их нет в моем векторе?

Input

6

8

5

6

13

3

4

Я проверил содержимое моего вектора, и они не содержат этих странных значений, которые выводит моя программа.

#include <iostream>
#include <vector>
#include <algorithm>
#include <fstream>
typedef long long ll;
using namespace std;

ll N, ans=0, cnt=1;
vector<ll> a;

void explode(ll ind, ll rad, ll dir)
{
  if (dir==1 && ind!=N-1)
  {
    ll i = ind+1, explode_count=0;
    while (a[i]<=a[ind]+rad) {cnt++; cout << a[i] << "\n"; i++; explode_count++;}
    if (explode_count>=1) explode(i-1, rad+1, 1);
  }
  else if (dir==-1 && ind!=0)
  {
    ll i = ind-1, explode_count=0;
    while (a[i]>=a[ind]-rad) {cnt++; cout << a[i] << "\n"; i--; explode_count++;}
    if (explode_count>=1) explode(i+1, rad+1, -1);
  }
}

int main()
{
  ofstream fout("angry.out");
  ifstream fin("angry.in");
  fin >> N;
  for (ll i = 0; i < N; i++)
  {
    ll c;
    fin >> c;
    a.push_back(c);
  }
  sort(a.begin(), a.end());
  for (ll i = 0; i < N; i++)
  {
    explode(i,1,1);
    explode(i,1,-1);
    ans=max(ans, cnt);
    cnt=1;
  }
  fout << ans << "\n";
  return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...