Skip to content
Related Articles

Related Articles

Improve Article
Setting up a C++ Competitive Programming Environment
  • Difficulty Level : Medium
  • Last Updated : 29 Apr, 2020

In this article we will learn about how to setup a all in one Competitive Programming Environment

Operating System

It is always recommended to use a Linux based OS. It is so because not only you will learn some better know-hows of the system but also will be able to get some pre-installed coding tools.
I would highly recommend a Linux system myself. For Starters Ubuntu is quite fine. Advance users may go with ArchLinux or Kali Linux. Even if you don’t want to change your OS, Please use latest versions of Windows (7 or later).

Download Ubuntu Desktop

Text Editor

There are quite a number of good text editors alailable in market these days like VS Code, Sublime text, Atom, Notepad++ etc.
My personal favourite is Sublime Text 3 because of it being lightweight, minimally aesthetic and high functionalities.

Download SublimeText 3



Language to use

Now is the time to choose a language to use. Most of the people use C++ as their primary coding language. This is mainly because of its speed, clarity and widespread support. So you should use C++ if you’re new to coding, but if you don’t know C++ but some other language, try focusing on that language only. Most of the CP Online judges will do things like variable time limits and all for other language. ie. if your language is 2x slower than C++ than you would get 2x time limit too as compared to a C++ program.

Compiler

Now if you are using C++ as your primary coding language you have to install a gcc compiler (Linux users can skip this step as most of the Linux Distros come with a compiler :)), If you are unsure if you have a gcc compiler or not; open shell(ie cmd) and execute following code. If you get a answer then you are ready to go. If not(ie system do not understands the command) you have to install a compiler first.

g++ –version

Download MinGW compiler

Final Setup

Now this is the most important step of the article…”the touchup”.

    A Template for CP




    #include<bits/stdc++.h>
    using namespace std;
    void solve();
    int main()
    {
       ios_base::sync_with_stdio(false);cin.tie(NULL);
       
       #ifndef ONLINE_JUDGE
       freopen("input.txt", "r", stdin);
       freopen("error.txt", "w", stderr);
       freopen("output.txt", "w", stdout);
       #endif
       
       int t=1;
       ${2:/*is Single Test case?*/}cin>>t;
       while(t--)
       {
          solve();
          cout<<"\n";
       }
       
       cerr<<"time taken : "<<(float)clock()/CLOCKS_PER_SEC<<" secs"<<endl;
       return 0;
    }
    void solve()
    {
    }

    if you are using Sublime Text then follow these steps to get a template

    open sublime and go to tools>developer>new snippet and click on it
    replace the existing code with the code written above and save it with some name.

    If you are using some other text editor, here is the template you should use:






    #include <bits/stdc++.h>
    using namespace std;
    void solve();
    int main()
    {
        ios_base::sync_with_stdio(false);
        cin.tie(NULL);
      
    #ifndef ONLINE_JUDGE
        freopen("input.txt", "r", stdin);
        freopen("error.txt", "w", stderr);
        freopen("output.txt", "w", stdout);
    #endif
      
        int t = 1;
        /*is Single Test case?*/ cin >> t;
        while (t--) {
            solve();
            cout << "\n";
        }
      
        cerr << "time taken : " << (float)clock() / CLOCKS_PER_SEC << " secs" << endl;
        return 0;
    }
    void solve()
    {
    }

    Screen setup

    All coding sites use a file comparison method to check answers. It means they store the output through your program in a text file and compare with the actual answer file.
    Therefore you should also do so. What you need to do is create a folder and inside it create 3 files input.txt, output.txt and error.txt. You should also place your cpp code here. After that you should configure your editor to a layout shown in the figure:

    Pay attention to files that are open in the editor.

    Add-On

    It is recommended to have the copy of all your codes with yourself. Therefore it is good to use a version control tool, like git.
    By the use of Git you can derive back any previous code you have ever written.
    I’ve scratched some code to automate the commit process(It requires SublimeText, Linux OS and Git)
    Download GIT




    "shell_cmd": "g++ \"${file}\" -o \"${file_path}\\\\${file_base_name}\"", "file_regex": "^(..[^:]):([0-9]+):?([0-9]+)?:? (.)$",
    "shell_cmd": "g++ -O2 -std=c++11 \"${file}\" -o \"${file_path}\\\\${file_base_name}\" && \"${file_path}\\\\${file_base_name}\" < input.txt",
    "working_dir": "${file_path}"
    "selector": "source.c, source.c++",
       
    "variants": [
     { "name": "Run + Commit",
    "shell_cmd": "g++ -O2 -std=c++11 \"${file}\" -o \"${file_path}\\\\${file_base_name}\" && \"${file_path}\\\\${file_base_name}\" < input.txt && git add test.cpp && dd if=\"${file}\" of=*/Enter the location of your Programming folder her/*/name.txt bs=10 count=1 && git commit -F name.txt ",
     }
     ]
     }

    To use the above code; Go to Sublime Text>Tools>Build System>New Built System and paste this code. Save the file with a name.and then again go to Tools>Build System and select the name that you have choosen for our new code.
    ALL Done…
    Now you can run your CPP code by using CTRL+SHIFT+B and choose from the 2 options.

    Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price.

    In case you wish to attend live classes with industry experts, please refer Geeks Classes Live

    My Personal Notes arrow_drop_up
Recommended Articles
Page :