I’ve recently started coding in c++ and trying to get into competitive programming in general and i have a few questions i can’t find an answer to. some guidance will be greatly appreciated.
In problems there are constraints regarding input, time and memory.
Time is easy to figure out as compiling will give you the time. However input constraints and memory, i can’t figure out. Take this example:
*Time limit: 1.00 s
*Memory limit: 512 MB
Consider an algorithm that takes as input a positive integer n. If n is even, the algorithm divides it by two, and if n is odd, the algorithm multiplies it by three and adds one. The algorithm repeats this, until n is one. For example, the sequence for n=3 is as follows:
3→10→5→16→8→4→2→1
Your task is to simulate the execution of the algorithm for a given value of n.
Input
The only input line contains an integer n.
Output
Print a line that contains all values of n during the algorithm.
Constraints
1≤ n ≤10^6
Example
Input:
3
Output:
3 10 5 16 8 4 2 1
Simple enough. But…
- how do I limit the memory to 512 MB? How can i make sure it won’t take more?
- the constraint says n has to be positive under 1,000,000. But what if i input a bigger value? what am i supposed to do with those constraints that are not fulfilled? skip the execution?
Thank you for your help!