¿Cin >> falla con números más grandes pero trabaja con números más pequeños?

¿Por qué falla cin al ingresar números como: 1 3999999999 pero funciona con números más pequeños como: 1 5?

int main()
{
    int N, X;
    cout << sizeof(int);

    cout << "Please enter two numbers: ";
    cin >> N >> X;

    vector <int> numbers = vector<int>();

    int currentNumber;

    cout << "Please enter list of numbers: ";
    for ( int i = 0; i < N; i++ )
    {
        cin >> currentNumber;
        if (cin.fail())
            cout << "Something sucks!";
        numbers.push_back(currentNumber);
    }

    sort(numbers.begin(), numbers.end(), Compare(X));

    cout << "The list is now: " << endl;
    for (int i = 0; i < N; i++)
    {
        cout << numbers[i] << " ";
    }
    cout << endl;

    return 0;
}

Simplemente se salta el paso.

Respuestas a la pregunta(4)

Su respuesta a la pregunta