Skip to content

galloska/SarisByClubAlgoritmiaESCOM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ICPC Resolver - Saris by Club Algoritmia ESCOM

Example image of Saris by Club Algoritmia ESCOM

The code of this repository contains a react app that can be used locally to simulate what happens in the frozen time during a competitive programming competition.

It is inspired by the ICPC Resolver.

The main idea for this project was to have a resolver for any Codeforces contest. This idea has changed, and the resolver can be used with any contest because it depends on a JSON input and not on the online judge.

In order to run this tool, you need to follow the installation steps.

Installation

To run this tool first you need to get the repository. You can either download the source code in your computer or run the following command:

git clone https://github.com/galloska/SarisByClubAlgoritmiaESCOM.git

Once you have downloaded the source code you need to install the dependencies of the project with the following command on the root folder of this project:

npm install

Once you have run this command, just type next command in the root folder of the project and start using Saris:

npm start

Input - What the tool needs to run the Resolver

The resolver (Saris) needs a JSON file in the src/log folder with the following format:

{
  "Contest": {
    "Duration": 300,
    "FrozenTime": 60,
    "NumberOfProblems": 10
  },
  "Teams": {
    "1": "Red Panda",
    "2": "Moscow IPT 1",
    "3": "Moscow IPT Jinotega"
  },
  "VerdictWithoutPenalty": {
    "1": "Compilation error"
  },
    "Submissions": [
    {
      "timeSubmission":  47,
      "TeamName":  "Moscow IPT Jinotega",
      "Problem":  "A",
      "Verdict":  "Accepted"
    },
    {
      "timeSubmission":  260,
      "TeamName":  "Moscow IPT 1",
      "Problem":  "H",
      "Verdict":  "Wrong answer"
    }
  ]
}

Contest: The Contest part contains information about the competition such as duration, frozen time and the number of problems.

Teams: In the team’s part the key value is the identifier of the team and it is followed by the name of the team. The key value must be unique for each team and if you want show an image related with that team, you can copy the image to src/university_logos and rename it to key.png where 'key' is the key value in the JSON file for that team.

VerdictWithoutPenalty: This includes those verdicts that does not affect penalty time for teams. For example, in some contest a runtime error adds penalty time and in some others this verdict is not considered for a penalty.

Submissions: An array containing the submissions of the contest. Each submission must have the time submission in minutes, the team that submitted the solution, the problem that was submitted and the verdict.

Verdicts can be anything you want except the Accepted verdict that must be Accepted.

If you have a JSON file with these requirements, then you can run this tool and start revealing the scoreboard.

Special commands

There are some commands that you need to type that make this tool to work. The commands are the following ones:

Enter: If you click enter for the first time then the UI goes to the next pending submission from bottom to top, and highlited it to let the user know that is the current pending submission the score is going to reveal.

If it is the second time you type the enter key, then it reveals the current pending submission.

Ctrl + Delete: Reveals the final standings.

Ctrl + Back space: Reveals standing until the top 10. That means the top 10 will be in the frozen stage and then you can go one by one revealing the results.

About

Saris By Club de Algoritmia ESCOM

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •