Errore esercizio "pens"

#include <bits/stdc++.h>
using namespace std;

int main(){
	long long N;
	int c=0;
	cin>>N;
	int P[N];
	if(N!=1){
		for(int i=0;i<N;i++){
			cin>>P[i];
			if(P[i]==0){
				c++; 
			}
			if(P[i]>=2&&P[i-1]==0){
				P[i]--;
				P[i-1]++; 
				c--;
			}
			if(P[i-1]>=2&&P[i]==0){
				P[i]++;
				P[i-1]--;
				c--;
			}
		}
	}
	else{
		cin>>P[0];
		if(P[0]==0){
			c++;
		}
	}
	cout<<c;
	return 0;
}

task errata:3; si avvia 2 volte la prima condizione anche se non dovrebbe(dato questo input: 15 2 0 3 4 1 1 1 1 1 1 1 1 2 0 1
Qualche aiuto?

Nel ciclo con i=0 non puoi lavorare su P[i-1]. per i=0 devi saltare i due if sotto

if(P[i]>=2&&P[i-1]==0){
		P[i]--;
		P[i-1]++; 
		c--;
	}
	if(P[i-1]>=2&&P[i]==0){
		P[i]++;
		P[i-1]--;
		c--;
	}

basta aggiungere la condizione che i sia>0 e va tutto  a posto ad esempio:
if(i&&P[i-1]>=2&&P[i]==0)

100/100 , errore banale ma mi stava facendo impazzire ahahaha, grazie