Problem p02832 (C++)

Buggy submission (status: Time Limit Exceeded):

/*
𝓐𝓾𝓽𝓱𝓸𝓻:-
𝓢𝓪𝓾𝓻𝓪𝓫𝓱𝓼𝓱𝓪𝓭𝓸𝔀
------------------------------------------------------------------------------------------------------------------

██╗░░██╗░█████╗░██████╗░██████╗░  ░██╗░░░░░░░██╗░█████╗░██████╗░██╗░░██╗  ██████╗░███████╗░█████╗░████████╗░██████╗
██║░░██║██╔══██╗██╔══██╗██╔══██╗  ░██║░░██╗░░██║██╔══██╗██╔══██╗██║░██╔╝  ██╔══██╗██╔════╝██╔══██╗╚══██╔══╝██╔════╝
███████║███████║██████╔╝██║░░██║  ░╚██╗████╗██╔╝██║░░██║██████╔╝█████═╝░  ██████╦╝█████╗░░███████║░░░██║░░░╚█████╗░
██╔══██║██╔══██║██╔══██╗██║░░██║  ░░████╔═████║░██║░░██║██╔══██╗██╔═██╗░  ██╔══██╗██╔══╝░░██╔══██║░░░██║░░░░╚═══██╗
██║░░██║██║░░██║██║░░██║██████╔╝  ░░╚██╔╝░╚██╔╝░╚█████╔╝██║░░██║██║░╚██╗  ██████╦╝███████╗██║░░██║░░░██║░░░██████╔╝
╚═╝░░╚═╝╚═╝░░╚═╝╚═╝░░╚═╝╚═════╝░  ░░░╚═╝░░░╚═╝░░░╚════╝░╚═╝░░╚═╝╚═╝░░╚═╝  ╚═════╝░╚══════╝╚═╝░░╚═╝░░░╚═╝░░░╚═════╝░

████████╗░█████╗░██╗░░░░░███████╗███╗░░██╗████████╗  ░██╗░░░░░░░██╗██╗░░██╗███████╗███╗░░██╗
╚══██╔══╝██╔══██╗██║░░░░░██╔════╝████╗░██║╚══██╔══╝  ░██║░░██╗░░██║██║░░██║██╔════╝████╗░██║
░░░██║░░░███████║██║░░░░░█████╗░░██╔██╗██║░░░██║░░░  ░╚██╗████╗██╔╝███████║█████╗░░██╔██╗██║
░░░██║░░░██╔══██║██║░░░░░██╔══╝░░██║╚████║░░░██║░░░  ░░████╔═████║░██╔══██║██╔══╝░░██║╚████║
░░░██║░░░██║░░██║███████╗███████╗██║░╚███║░░░██║░░░  ░░╚██╔╝░╚██╔╝░██║░░██║███████╗██║░╚███║
░░░╚═╝░░░╚═╝░░╚═╝╚══════╝╚══════╝╚═╝░░╚══╝░░░╚═╝░░░  ░░░╚═╝░░░╚═╝░░╚═╝░░╚═╝╚══════╝╚═╝░░╚══╝

████████╗░█████╗░██╗░░░░░███████╗███╗░░██╗████████╗  ██████╗░░█████╗░███████╗░██████╗███╗░░██╗██╗████████╗
╚══██╔══╝██╔══██╗██║░░░░░██╔════╝████╗░██║╚══██╔══╝  ██╔══██╗██╔══██╗██╔════╝██╔════╝████╗░██║╚█║╚══██╔══╝
░░░██║░░░███████║██║░░░░░█████╗░░██╔██╗██║░░░██║░░░  ██║░░██║██║░░██║█████╗░░╚█████╗░██╔██╗██║░╚╝░░░██║░░░
░░░██║░░░██╔══██║██║░░░░░██╔══╝░░██║╚████║░░░██║░░░  ██║░░██║██║░░██║██╔══╝░░░╚═══██╗██║╚████║░░░░░░██║░░░
░░░██║░░░██║░░██║███████╗███████╗██║░╚███║░░░██║░░░  ██████╔╝╚█████╔╝███████╗██████╔╝██║░╚███║░░░░░░██║░░░
░░░╚═╝░░░╚═╝░░╚═╝╚══════╝╚══════╝╚═╝░░╚══╝░░░╚═╝░░░  ╚═════╝░░╚════╝░╚══════╝╚═════╝░╚═╝░░╚══╝░░░░░░╚═╝░░░

░██╗░░░░░░░██╗░█████╗░██████╗░██╗░░██╗  ██╗░░██╗░█████╗░██████╗░██████╗░
░██║░░██╗░░██║██╔══██╗██╔══██╗██║░██╔╝  ██║░░██║██╔══██╗██╔══██╗██╔══██╗
░╚██╗████╗██╔╝██║░░██║██████╔╝█████═╝░  ███████║███████║██████╔╝██║░░██║
░░████╔═████║░██║░░██║██╔══██╗██╔═██╗░  ██╔══██║██╔══██║██╔══██╗██║░░██║
░░╚██╔╝░╚██╔╝░╚█████╔╝██║░░██║██║░╚██╗  ██║░░██║██║░░██║██║░░██║██████╔╝
░░░╚═╝░░░╚═╝░░░╚════╝░╚═╝░░╚═╝╚═╝░░╚═╝  ╚═╝░░╚═╝╚═╝░░╚═╝╚═╝░░╚═╝╚═════╝░

------------------------------------------------------------------------
*/
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
using namespace std;

#define loop(i, n) for (i = 0; i < n; i++)
#define loopf(i, a, n) for (i = a; i < n; i++)
#define loopb(i, a, n) for (i = a; i >= n; i--)
#define fore(name) for (auto it = name.begin(); it != name.end(); it++)
#define w(t)                                                                   \
  int t;                                                                       \
  cin >> t;                                                                    \
  while (t--)
#define pb(x) push_back(x)
#define in(y) insert(y)
#define make(x, y) make_pair(x, y)
#define LOAD_FACTOR_set(name)                                                  \
  name.reserve(32768);                                                         \
  name.max_load_factor(0.25);
#define LOAD_FACTOR_map(name)                                                  \
  name.reserve(1024);                                                          \
  name.max_load_factor(0.25);
#define lcm(a, b) ((a * b)) / (__gcd(a, b))
#define int long long int
#define REDBULL                                                                \
  ios_base::sync_with_stdio(false);                                            \
  cin.tie(NULL);
#define mod 1000000007
#define endl "\n"

typedef tree<int, null_type, less_equal<int>, rb_tree_tag,
             tree_order_statistics_node_update>
    ordered_set;
#define ordered_justset                                                        \
  tree<int, null_type, less<int>, rb_tree_tag,                                 \
       tree_order_statistics_node_update>

struct HASH {
  size_t operator()(const pair<int, int> &x) const {
    return ((int)x.first) ^ (((int)x.second) << 32);
  }
};

int32_t main() {

  REDBULL

  int n;
  cin >> n;
  int input;
  int i;
  std::vector<int> v;
  loop(i, n) {
    cin >> input;
    v.pb(input);
  }
  i = 1;
  auto f = v.begin();
  while (f != v.end()) {

    if (*f != i) {
      v.erase(f);
      f = v.begin();
      // cout<<*f<<endl;
      // cout<<"ehre"<<endl;
    } else {
      // cout<<"amadr"<<endl;
      i++;
      f++;
    }
  }
  i--;
  // cout<<i<<endl;
  if (i <= 0)
    cout << -1 << endl;
  else
    cout << n - i << endl;
  // cout<<i<<endl;
  return 0;
}


Fixed submission:

/*
𝓐𝓾𝓽𝓱𝓸𝓻:-
𝓢𝓪𝓾𝓻𝓪𝓫𝓱𝓼𝓱𝓪𝓭𝓸𝔀
------------------------------------------------------------------------------------------------------------------

██╗░░██╗░█████╗░██████╗░██████╗░  ░██╗░░░░░░░██╗░█████╗░██████╗░██╗░░██╗  ██████╗░███████╗░█████╗░████████╗░██████╗
██║░░██║██╔══██╗██╔══██╗██╔══██╗  ░██║░░██╗░░██║██╔══██╗██╔══██╗██║░██╔╝  ██╔══██╗██╔════╝██╔══██╗╚══██╔══╝██╔════╝
███████║███████║██████╔╝██║░░██║  ░╚██╗████╗██╔╝██║░░██║██████╔╝█████═╝░  ██████╦╝█████╗░░███████║░░░██║░░░╚█████╗░
██╔══██║██╔══██║██╔══██╗██║░░██║  ░░████╔═████║░██║░░██║██╔══██╗██╔═██╗░  ██╔══██╗██╔══╝░░██╔══██║░░░██║░░░░╚═══██╗
██║░░██║██║░░██║██║░░██║██████╔╝  ░░╚██╔╝░╚██╔╝░╚█████╔╝██║░░██║██║░╚██╗  ██████╦╝███████╗██║░░██║░░░██║░░░██████╔╝
╚═╝░░╚═╝╚═╝░░╚═╝╚═╝░░╚═╝╚═════╝░  ░░░╚═╝░░░╚═╝░░░╚════╝░╚═╝░░╚═╝╚═╝░░╚═╝  ╚═════╝░╚══════╝╚═╝░░╚═╝░░░╚═╝░░░╚═════╝░

████████╗░█████╗░██╗░░░░░███████╗███╗░░██╗████████╗  ░██╗░░░░░░░██╗██╗░░██╗███████╗███╗░░██╗
╚══██╔══╝██╔══██╗██║░░░░░██╔════╝████╗░██║╚══██╔══╝  ░██║░░██╗░░██║██║░░██║██╔════╝████╗░██║
░░░██║░░░███████║██║░░░░░█████╗░░██╔██╗██║░░░██║░░░  ░╚██╗████╗██╔╝███████║█████╗░░██╔██╗██║
░░░██║░░░██╔══██║██║░░░░░██╔══╝░░██║╚████║░░░██║░░░  ░░████╔═████║░██╔══██║██╔══╝░░██║╚████║
░░░██║░░░██║░░██║███████╗███████╗██║░╚███║░░░██║░░░  ░░╚██╔╝░╚██╔╝░██║░░██║███████╗██║░╚███║
░░░╚═╝░░░╚═╝░░╚═╝╚══════╝╚══════╝╚═╝░░╚══╝░░░╚═╝░░░  ░░░╚═╝░░░╚═╝░░╚═╝░░╚═╝╚══════╝╚═╝░░╚══╝

████████╗░█████╗░██╗░░░░░███████╗███╗░░██╗████████╗  ██████╗░░█████╗░███████╗░██████╗███╗░░██╗██╗████████╗
╚══██╔══╝██╔══██╗██║░░░░░██╔════╝████╗░██║╚══██╔══╝  ██╔══██╗██╔══██╗██╔════╝██╔════╝████╗░██║╚█║╚══██╔══╝
░░░██║░░░███████║██║░░░░░█████╗░░██╔██╗██║░░░██║░░░  ██║░░██║██║░░██║█████╗░░╚█████╗░██╔██╗██║░╚╝░░░██║░░░
░░░██║░░░██╔══██║██║░░░░░██╔══╝░░██║╚████║░░░██║░░░  ██║░░██║██║░░██║██╔══╝░░░╚═══██╗██║╚████║░░░░░░██║░░░
░░░██║░░░██║░░██║███████╗███████╗██║░╚███║░░░██║░░░  ██████╔╝╚█████╔╝███████╗██████╔╝██║░╚███║░░░░░░██║░░░
░░░╚═╝░░░╚═╝░░╚═╝╚══════╝╚══════╝╚═╝░░╚══╝░░░╚═╝░░░  ╚═════╝░░╚════╝░╚══════╝╚═════╝░╚═╝░░╚══╝░░░░░░╚═╝░░░

░██╗░░░░░░░██╗░█████╗░██████╗░██╗░░██╗  ██╗░░██╗░█████╗░██████╗░██████╗░
░██║░░██╗░░██║██╔══██╗██╔══██╗██║░██╔╝  ██║░░██║██╔══██╗██╔══██╗██╔══██╗
░╚██╗████╗██╔╝██║░░██║██████╔╝█████═╝░  ███████║███████║██████╔╝██║░░██║
░░████╔═████║░██║░░██║██╔══██╗██╔═██╗░  ██╔══██║██╔══██║██╔══██╗██║░░██║
░░╚██╔╝░╚██╔╝░╚█████╔╝██║░░██║██║░╚██╗  ██║░░██║██║░░██║██║░░██║██████╔╝
░░░╚═╝░░░╚═╝░░░╚════╝░╚═╝░░╚═╝╚═╝░░╚═╝  ╚═╝░░╚═╝╚═╝░░╚═╝╚═╝░░╚═╝╚═════╝░

------------------------------------------------------------------------
*/
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
using namespace std;

#define loop(i, n) for (i = 0; i < n; i++)
#define loopf(i, a, n) for (i = a; i < n; i++)
#define loopb(i, a, n) for (i = a; i >= n; i--)
#define fore(name) for (auto it = name.begin(); it != name.end(); it++)
#define w(t)                                                                   \
  int t;                                                                       \
  cin >> t;                                                                    \
  while (t--)
#define pb(x) push_back(x)
#define in(y) insert(y)
#define make(x, y) make_pair(x, y)
#define LOAD_FACTOR_set(name)                                                  \
  name.reserve(32768);                                                         \
  name.max_load_factor(0.25);
#define LOAD_FACTOR_map(name)                                                  \
  name.reserve(1024);                                                          \
  name.max_load_factor(0.25);
#define lcm(a, b) ((a * b)) / (__gcd(a, b))
#define int long long int
#define REDBULL                                                                \
  ios_base::sync_with_stdio(false);                                            \
  cin.tie(NULL);
#define mod 1000000007
#define endl "\n"

typedef tree<int, null_type, less_equal<int>, rb_tree_tag,
             tree_order_statistics_node_update>
    ordered_set;
#define ordered_justset                                                        \
  tree<int, null_type, less<int>, rb_tree_tag,                                 \
       tree_order_statistics_node_update>

struct HASH {
  size_t operator()(const pair<int, int> &x) const {
    return ((int)x.first) ^ (((int)x.second) << 32);
  }
};

int32_t main() {

  REDBULL

  int n;
  cin >> n;
  int input;
  int i;
  std::vector<int> v;
  loop(i, n) {
    cin >> input;
    v.pb(input);
  }
  i = 1;
  auto f = v.begin();
  while (f != v.end()) {

    if (*f != i) {
      f++;
    } else {
      // cout<<"amadr"<<endl;
      i++;
      f++;
    }
  }
  i--;
  // cout<<i<<endl;
  if (i <= 0)
    cout << -1 << endl;
  else
    cout << n - i << endl;
  // cout<<i<<endl;
  return 0;
}