please tell what is wrong in this question
#include
#include
using namespace std;
int countways(int n, int index, int prev, vector<vector>& dp) {
if(index == n) return 1;
if(dp[index][prev + 1] != -1) return dp[index][prev + 1];
int one = 0, zero = 0;
if(prev == 1) {
zero += countways(n, index + 1, 0, dp);
} else {
one += countways(n, index + 1, 1, dp);
zero += countways(n, index + 1, 0, dp);
}
return dp[index][prev + 1] = one + zero;
}
int main() {
int t;
cin >> t;
while(t–) {
int n;
cin >> n;
vector<vector> dp(n + 1, vector(3, -1)); // prev = -1, 0, 1 → mapped to 0, 1, 2
cout << countways(n, 0, -1, dp) << “\n”;
}
return 0;
}