#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
void solve(){
int n; cin >> n;
vector<int> a(n);
for (auto &i : a) cin >> i;
deque<int> idx;
for (int i = 0; i < n; i++){
if (a[i] == -1) idx.push_back(i);
}
n = idx.size();
int ans = 0;
while (idx.size() > 1 && (idx.back() != idx.size() - 1)){
n = idx.size();
if (idx[n - 1] - idx[n - 2] == 1){
ans++;
idx.pop_back();
idx.pop_back();
}
else break;
}
n = idx.size();
bool b = 1;
for (int i = 0; i < n; i++){
if (idx[i] != i) b = 0;
}
cout << (b ? ans : -1) << endl;
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);
int tc = 1;
// cin >> tc;
while (tc--){
solve();
}
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |