#include <vector>
#include <algorithm>
#include <iostream>

using namespace std;

int diff(const vector<int>& arr)
{
  auto first_negative = find_if(arr.begin(), arr.end(), [](const int& var){ return var < 0; });
  if (first_negative == arr.end())
    return 0;

  int counter = 0;
  auto second_positive = find_if(arr.begin(), arr.end(), [&counter](const int& var){
    if (var > 0) 
      counter++;
    if (counter == 2) 
      return true;
    else return false;
  });

  if (second_positive == arr.end())
    return 0;

  return *first_negative - *second_positive;
}

int main()
{
  vector<int> ar {0, 1, 67, 89, -76, 56, -5, 0, -89, 6, 78, 89};

  cout << diff(ar) << endl;
  cout << diff({0, 0, 0, 0}) << endl;
  cout << diff({ -2, 1, 0, -5 }) << endl;
  cout << diff({ 12, 10, 70, 5 }) << endl;

  return 0;
}