Some important shortcuts in Competitive Programming

The most common tools to save time in C/C++ are typedefs and macros. Unfortunately, these features are not available in many other languages like Java.

Here are some examples of our C/C++ code

Shortcuts:



// Shortcuts for "common" data types in contests
typedef long long ll; 
typedef pair<int, int> ii; 
typedef vector<ii> vii;
typedef vector<int> vi;

Infinite:

const int INF = 0x3f3f3f3f;

Setting up values in array:

// initialize DP memoization table with -1
memset(memo, -1, sizeof memo); 

// to clear array of integers
memset(arr, 0, sizeof arr); 

// Use a vector to creates a dynamic array 
// and initialize it in one statement.
// Creates a vector of size N and values as 0.
vector<int> v(N, 0); // OR vi v(N, 0); 

The following shortcuts can save time in almost all languages including Java:

// to simplify: if (a) ans = b; else ans = c;
ans = a ? b : c; 

// to simplify: ans = ans + val; and its variants
ans += val; 

// index++; if (index >= n) index = 0;
index = (index + 1) % n; 

// index--; if (index < 0) index = n - 1;
index = (index + n - 1) % n; 

// for rounding to nearest integer
int ans = (int)((double)d + 0.5); 

// min/max shortcut to update max/min
ans = min(ans, new_computation); 

// To return true if a value matches a given
// number, else return false
// if (val == given_no) return true; 
// else return false;
return (val == given_no)

This article is contributed by Priyam kakati. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above

competitive-programming-img

My Personal Notes arrow_drop_up
Article Tags :

6


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.