I am getting WA for this code. Please help me out!!!
my dp is dp[n][k]=(dp[n-1][k-1]+dp[n-1][k-2]+dp[n-1][k-3]+dp[n-1][k-4]+dp[n-1][k-5]+dp[n-1][k-6])/6
switch case is just for dp[n][1],dp[n][2],dp[n][3],dp[n][4],dp[n][5] since they don't need above full formula .
Thanks in advance
#include<stdio.h>
using namespace std;
int main()
{
int test;
scanf("%d",&test);
while(test--)
{
int n,k;
scanf("%d %d",&n,&k);
int dp[2][7000]={0,0};
if(n>1000)
printf("0\n");
else
{
for(int i=1;i<=6;i++)
{
dp[0][i]=1;
dp[1][i]=i;
}
for(int i=7;i<=12;i++)
dp[1][i]=12-i;
if(k<=0 || k>n*6)
printf("0\n");
else if(n==1)
printf("16\n");
else if(n==2)
printf("%d\n",(dp[n-1][k]*100)/36);
else
{
int m=3;
while(m<=n)
{
for(int i=1;i<=6*m;i++)
{
switch(i)
{
case 1:
dp[(m-1)%2][i]=dp[(m-2)%2][i-1];
break;
case 2:
dp[(m-1)%2][i]=dp[(m-2)%2][i-1]+dp[(m-2)%2][i-2];
break;
case 3:
dp[(m-1)%2][i]=dp[(m-2)%2][i-1]+dp[(m-2)%2][i-2]+dp[(m-2)%2][i-3];
break;
case 4:
dp[(m-1)%2][i]=dp[(m-2)%2][i-1]+dp[(m-2)%2][i-2]+dp[(m-2)%2][i-3]+dp[(m-2)%2][i-4];
break;
case 5:
dp[(m-1)%2][i]=dp[(m-2)%2][i-1]+dp[(m-2)%2][i-2]+dp[(m-2)%2][i-3]+dp[(m-2)%2][i-4]+dp[(m-2)%2][i-5];
break;
default:
dp[(m-1)%2][i]=dp[(m-2)%2][i-1]+dp[(m-2)%2][i-2]+dp[(m-2)%2][i-3]+dp[(m-2)%2][i-4]+dp[(m-2)%2][i-5]+dp[(m-2)%2][i-6];
break;
}
}
m++;
}
int result=dp[(n-1)%2][k]*100;
for(int i=0;i<n;i++)
result=result/6;
printf("%d\n",result);
}
}
}
return 0;
}