#include <bits/stdc++.h>   using namespace std;   template <class T>   bool uin(T &a, T b) {     return a > b ? (a = b, true) : false;   }   template <class T>   bool uax(T &a, T b) {     return a < b ? (a = b, true) : false;   }   const long long maxn = 1000001, mod = 1e9 + 7;   int main() {     ios_base::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     int n;     cin >> n;     int ar[n];     map<int, int> mapp;     for (long long i = 0; i < (long long)(n); ++i) {       cin >> ar[i];       mapp[ar[i]] = i;     }     set<int> s;     s.insert(-1);     s.insert(n);     int ans = 0;     for (int i = n; i >= 1; i--) {       int idx = mapp[i];       auto it = s.lower_bound(idx);       auto iit = s.upper_bound(idx);       if (it != s.begin()) it--;       int a = *it + 1;       int b = *iit - 1;       if (idx - a < b - idx) {         for (long long j = (long long)(a); j <= (long long)(idx - 1); ++j) {           int acha = mapp[i - ar[j]];           if (acha > idx && acha <= b) {             ans++;           }         }       } else {         for (long long j = (long long)(idx + 1); j <= (long long)(b); ++j) {           int acha = mapp[i - ar[j]];           if (acha < idx && acha >= a) {             ans++;           }         }       }       s.insert(mapp[i]);     }     cout << ans;     return 0;   }   