Zgaduje, że jesteś na windowsie, a tam stos bardzo łatwo zapełnić. Ideone z tego co wiem jest postawiony na linuksie i nie ma aż takich ograniczeń dla stosu.
Więcej o przepełnieniu stosu tutaj: pl.wikipedia.org
int main()
{
int n[10000000]; // tablica jest zbyt duża
int j =0; // j nie mieści się już na stosie, błąd
}
Rozwiązanie jest proste. dp[][] powinna być tablicą globalną, a nie lokalną (wewnątrz main'a).