I'm currently finishing my bachelor's degree of Computer Science and I'm really interested in Computational Complexity Theory and Analysis and design of Algorithms. As far as I know, if I do not have any papers or a MS degree it's almost impossible for me to get admitted into Phd in a top-50 US university. Therefore, a professor advised me to do a MS in CS with a thesis and aim to get published at least one paper while doing it.
That being said, I'm looking for a university where I can keep learning about those topics I mentioned (and maybe others like Scientific Computing for example) and that can provide me some sort of funding (i.e Teaching assistant, grading, etc) while doing the MS. I come from the best ranked university in my country (UNAL/Colombia), my GPA is 3.6/4, I have made a research project with the LLNL (Lawrence Livermore National Laboratory) in FEM, I have good recommendation letters and I've obtained a 7.5 in IELTS Academic.
Is there any university (in US/Canada/Europe or Latin America) you would recommend me to apply for? (I cannot apply to many universities since each application is about 90 USD and my local currency is extremely devalued) So far I have just considered University of Waterloo.