Omar_Hafez's blog

By Omar_Hafez, 3 years ago, In English

بسم الله الرحمن الرحيم

Hello, I would like to introduce The Competitive Programming tool. It provides several useful features for competitive programming.

Test your code for testCases:

You can test your code for several test cases at the same time and you can load the test cases supplied in the problem automatically just by pasting the link of the problem in the tool and let it load the test cases for you (This work for Codeforces, Atcoder)

Screenshot-from-2021-09-26-17-44-45

Submit your solution:

This tool can also submit your solution automatically to your account from the tool itself and load the results of your submission (Accepted, Wrong answer, ..etc) (This work for codeforces.com and atcoder.jp)

Screenshot-from-2021-09-26-17-49-07 Screenshot-from-2021-09-26-17-49-24 Screenshot-from-2021-09-26-17-54-16 Screenshot-from-2021-11-03-03-20-26

Save your solutions:

This will take a copy of your solution and save it in a folder with a name depending on the link of the problem And this process happens automatically once your submission gets Accepted. This feature may be useful for some users

Screenshot-from-2021-09-26-18-10-11

Nice colorful output section:

Nice detailed output section that explains where exactly your error in the code and also gives you feedback about the time and memory taken by your code for each test case

Screenshot-from-2021-09-26-18-11-35

Encrypt your username and password:

This tool will Encrypt your username and password and store them. (This process is needed to log in into your accounts to submit your solution)

Screenshot-from-2021-09-26-18-16-18

Works for C++, Python, and Java:

I will add to it in the future some other programming language.

Stress test your code:

Now you can Stress test your code using this new feature. Just click F8 to open it.

5

How to use it:

You will need to put your code files in the CODE folder. (in the CODE folder you will find the C++ folder, Java folded, and Python folder to put your code in them) Then write the name of your file down right textBox (without the extension of the file i.e. A not A.cpp or A.java or A.py just A)

Then choose the language that you use from the upper right ComboBox.

to submit, save or load test cases, press F1 (Please make sure to take a look at the shortcuts.txt file that contains all the shortcuts in it)

For better experience: You can split the screen between this tool and the text editor you use like this:

Screenshot-from-2021-11-03-03-08-04

Installation:

There is no need to install anything just download this folder and double-click on the Competitive_Programming.jar file to open it! This program is written in Java so please make sure to have java installed on your machine. And also please make sure that you have the Chrome browser installed and updated.

_If you faced "An error occurred" while submitting your solution please check the version of your chrome browser and then go to this website and download the chrome driver of your chrome browser version (This is just about 7 MB only) then replace the file chromedriver in src folder (or chromedriver.exe for windows) with the new one_ (You may need to kill the process in the task manager named chromdriver.exe before you replace the files).

Please don't remove or rename any file or folder (except the code files in the CODE folder).

Download (last update 2022/4/4)

This Tool work for Linux(Ubuntu) and Windows

Source code

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.

If you faced any errors please let me know in the comments or in the PM. I spent a lot of time writing this program and debugging it so I expect that it will work without any errors with you.

Hope you find this useful. Thanks a lot for reading.

History of updates

You will need to re-download the program for the latest update because It will not update automatically.

UPDATE: 2021/10/04 I updated the fonts with better fonts. Please make sure to install the fonts used from the folder "FONTS TO INSTALL" before starting the program.

UPDATE: 2021/10/11 Simple bugs fixed. The bug makes the program unable to load the results when submitting to atcoder for the first time for the contest. And the bug that makes it unable to submit a solution to codeforces once you change the programming language that you use.

UPDATE: 2021/12/25 Fixed some bugs.

  • Vote: I like it
  • +108
  • Vote: I do not like it

| Write comment?
»
3 years ago, # |
  Vote: I like it +4 Vote: I do not like it

It looks fine, but how do we know we can trust it. like you won't steal people's accounts or something

  • »
    »
    3 years ago, # ^ |
    Rev. 2   Vote: I like it +24 Vote: I do not like it

    Nice qusetion. I don't collect any data from this program and i dont know who used it and how. To make sure from this point you can decomplie the program (the jar file, you can use any java decomplier and there are alot of java decompilers online) and read its source code if you find my program collect any data you can simply take screen shot of that and tell the comunity here.

    • »
      »
      »
      3 years ago, # ^ |
        Vote: I like it +3 Vote: I do not like it

      why don't you just provide the source code yourself?

      • »
        »
        »
        »
        3 years ago, # ^ |
        Rev. 2   Vote: I like it +7 Vote: I do not like it

        sohmm If I Collect some data from this, I will easily omit the code that does this from the source code that I will share! So decompiling the program is the convenient way to do this.

»
3 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Seems a very good program, but to be brutally honest cpbooster is a similar project that is way better.

  • »
    »
    3 years ago, # ^ |
    Rev. 3   Vote: I like it +7 Vote: I do not like it

    Every competitive programmer should know the benefit of competitions as a whole. It makes both parties showcase their best. It's just a matter of choice/preference. Are you against that?

  • »
    »
    3 years ago, # ^ |
    Rev. 2   Vote: I like it +4 Vote: I do not like it

    PathToMaster What makes cpbooster is better? I think this program is faster and easier to use than anything I tried before. submission in cpbooster is quite slow and it doesn't have a nice GUI like this. If there is a tool that behaves better than this I will not spend all this time and effort to make this work! especially that I worked on this without any support or help from others. It is just one personal effort not a group of programmers like cpbooster

    • »
      »
      »
      3 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      Sorry for writing that. I didn't know enough about CP tool at that time, and hadn't noticed the bugs of Cpbooster (even if it is a nice initiative). I apologize for what I wrote.

»
3 years ago, # |
  Vote: I like it +3 Vote: I do not like it

Can anyone who downloaded this tell me did it work with him or found any errors? Thanks in advance.

  • »
    »
    3 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Yes actually on windows we generate a.exe file not a.out file also the window output size is way longer to fit inside the screen.

    • »
      »
      »
      3 years ago, # ^ |
      Rev. 4   Vote: I like it 0 Vote: I do not like it

      OiNishant Please send me the content of logs.txt file

      • »
        »
        »
        »
        3 years ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        Started in 2021/09/27 19:26:21 java.io.FileNotFoundException: C:\Users\Nishant Singh\Downloads\Compressed\Competitive_Programming\Competitive_Programming\src\logins\ac.txt (The system cannot find the file specified) at java.base/java.io.FileInputStream.open0(Native Method) at java.base/java.io.FileInputStream.open(FileInputStream.java:212) at java.base/java.io.FileInputStream.(FileInputStream.java:154) at java.base/java.io.FileReader.(FileReader.java:75) at com.company.Competitive_Programming.readFile(Competitive_Programming.java:162) at com.company.Competitive_Programming.load_login(Competitive_Programming.java:145) at com.company.Competitive_Programming.check_login(Competitive_Programming.java:138) at com.company.Competitive_Programming.main(Competitive_Programming.java:104) java.io.FileNotFoundException: C:\Users\Nishant Singh\Downloads\Compressed\Competitive_Programming\Competitive_Programming\src\logins\acc.txt (The system cannot find the file specified) at java.base/java.io.FileInputStream.open0(Native Method) at java.base/java.io.FileInputStream.open(FileInputStream.java:212) at java.base/java.io.FileInputStream.(FileInputStream.java:154) at java.base/java.io.FileReader.(FileReader.java:75) at com.company.Competitive_Programming.readFile(Competitive_Programming.java:162) at com.company.Competitive_Programming.load_login(Competitive_Programming.java:146) at com.company.Competitive_Programming.check_login(Competitive_Programming.java:138) at com.company.Competitive_Programming.main(Competitive_Programming.java:104) java.lang.NullPointerException at com.company.AES.decrypt(AES.java:56) at com.company.Competitive_Programming.load_login(Competitive_Programming.java:149) at com.company.Competitive_Programming.check_login(Competitive_Programming.java:138) at com.company.Competitive_Programming.main(Competitive_Programming.java:104) java.lang.NullPointerException at com.company.AES.decrypt(AES.java:56) at com.company.Competitive_Programming.load_login(Competitive_Programming.java:149) at com.company.Competitive_Programming.check_login(Competitive_Programming.java:138) at com.company.Competitive_Programming.main(Competitive_Programming.java:104)

»
3 years ago, # |
  Vote: I like it 0 Vote: I do not like it

How to add custom flags and use it with some other browser (Brave)

»
3 years ago, # |
  Vote: I like it 0 Vote: I do not like it

¡Thanks for publishing the source code! I would like to ask to specify a license for it, since it some countries is illegal to copy or make derivative works unless there is explicit authorization. If you want to let it in public domain, I recommend you the CC0 license. But if want to avoid people from using the source code in proprietary works a copyleft license would be much better ;-)