Sin salida en Sublime Text (compilador g ++ versión 6.3.0)

No tengo RE en el sitio web de programación en línea, así que supongo que también debería funcionar en texto sublime

Enlace a la pregunta: https://atcoder.jp/contests/dp/tasks/dp_k

¿Por qué mi código no responde en texto sublime cuando la entrada de k es 10 ^ 5
? El código aún se ejecuta en sitios web en línea. ¿Estoy encontrando una razón?


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

int dp[100002];
int solve(vector<int>&v,int k){
    if(k==0)return dp[0]=0;  //0 represents loosing,1 represent winning
    if(dp[k]!=-1){
        return dp[k];
    }
    

   //for any possible operation is there a loosing state if yes then he wins the game
    for(int i=0;i<v.size();i++){ 
        
        if(k>=v[i] && solve(v,k-v[i])==0){
            return dp[k]=1;
        }
    }
    return dp[k]=0;
    
}


int main(){
    memset(dp,-1,sizeof(dp));
    
    int n,k;
    cin>>n>>k;
    vector<int>v(n);
    for(int &x : v){
        cin>>x;
    }
    solve(v,k);
    if(dp[k]==1){
        cout<<"First";
    }
    else cout<<"Second";



    
    return 0;
}
Answer

Suponiendo que Windows : sospecho que no está viendo la salida porque el programa finaliza antes de que la ventana de la consola se mapee por primera vez.

La solución es hacer que el usuario presione Enter antes de finalizar su programa.

int main()
{
  ...

  std::cout << "Press Enter to quit.";
  std::cin.ignore( std::numeric_limits <std::streamsize> ::max(), '\n' );
  std::cin.ignore( std::numeric_limits <std::streamsize> ::max(), '\n' );
}

(La línea se repite porque su programa no borra la nueva línea de las entradas anteriores, por lo que debe borrarse y luego ingresarse nuevamente para satisfacer el mensaje).

Si está utilizando Linux , asegúrese de iniciar Sublime en una ventana de terminal. Si lo inicia desde el menú, no se conectará a ningún terminal de salida.