Given n = 25, and I have an algorithm with time complexity of O(2^n * n), will c++ be able to finish running the program in 1.5 second?
I think the situation you described is closer to 10^9. In this case, it is extremely difficult but potentially possible (an efficient piece of code can run USACO in O(2^n * n^2) ).
10^8 is possible unless if the code is written inefficiently.