qpwoeirut's blog

By qpwoeirut, history, 11 months ago, In English

TLDR: will people get angry if the judging servers for a contest use ARM64?

I'm setting up the hosting infrastructure for the Bay Area Programming Contest using DOMjudge, and as part of this setup I need to choose what machines the judgehosts will run on. I've decided to use AWS EC2 for hosting since I've already tested setting up DOMjudge as a dry run on there.

Of the machine families that EC2 provides, I've chosen to go with the burstable (T) instances, run in unlimited mode. (Also, if anyone has experience with using these for programming contests, I'd love to hear how it went for you. I read through some AWS docs and it seems that the compute performance should be stable if run in unlimited mode, but I haven't done any hands-on testing yet.) I'm currently picking between the T3 and T4g instances. T3 runs x86_64 and T4g runs ARM64.

I would like to use T4g because it's cheaper, but I'm concerned that some common hacks (e.g. the avx2 pragma) only work on x86_64 and that people will be angry about that. I tried doing some research into what architectures are commonly used in CP judges and I could only find Codeforces, which apparently uses Intel Skylake, and IOI, which uses Intel Core i5. Also, USACO Training mentions in section 1-2 that "programs are run on a modern processor but times are scaled to a 700 MHz Pentium III". All of these use x86, AFAIK. So ultimately I have two questions:

  1. From a technical perspective: What common hacks that competitive programmers use won't work on ARM64?
  2. From an organizing perspective: As a contest organizer, is it my responsibility to make sure these features are available? Or are participants responsible for understanding the pragmas and other lines of code that are often blindly copy-pasted?

Full text and comments »

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

By qpwoeirut, history, 16 months ago, In English

Does anyone know of a platform similar to Codeforces that can be used to create and run head-to-head games? It doesn't necessarily have to be a public website already on the internet; I'm willing to host it myself if necessary.

I'm imagining a platform that would have a system similar to Polygon where you can write an arbiter program that handles a head-to-head matchup between two contestants' programs. For example, let's say I'm running a rock-paper-scissors tournament. I'd write an arbiter program that reads in the two players' moves and returns the result of the game. Then contestants can submit their code in any supported language and the new submission will be run against all other participants' code.

Such a system probably isn't scalable if running every participant's program against every other participant's program is the goal, but that's fine. The use case I'm thinking of will almost certainly be around 25 people at most.

I've seen some systems somewhat similar to what I'm thinking of. MIT Battlecode comes to mind, but that's a highly specialized framework that only runs Java and has to deal with the game-specific bytecode requirements. I remember CMU's CMIMC's AI round had some head-to-head games, but I don't know if their infrastructure is available anywhere or how generalized it is.

Does anyone know of any open-source or otherwise public platforms/frameworks that can run head-to-head games? If you have expertise in this area, how difficult do you think it would be to build this, using preexisting frameworks such as CMS?

Full text and comments »

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

By qpwoeirut, 4 years ago, In English

Hello Codeforces!

I was recently part of a team which wrote the first Bay Area Programming Contest and hosted it through a Codeforces gym. Now, I want to post the editorial for this gym, but I've run into some issues, which are bolded in the blog below. (We found out while hosting the contest that people tend to get angry if the important parts of some text aren't in bold.)

Embedding a Tutorial into a Codeforces Blog

When I went to go write the editorial blog, I realized that I didn't actually know how to embed tutorials into blogs, and no option to add a tutorial shows up in the editor. Fortunately, a bit of searching around led me to this blog, which provides the syntax. However, that blog's purpose was definitely not to explain how to embed editorials. So, is there some comprehensive list of all the features that CF blogs support? I can't help but wonder if there are other things I don't know about either. In addition, why isn't there an option to embed a blog in the CF blog editor?

Public Editorials for Group Contests

Once I was able to embed an editorial, the preview that appeared also included red text, saying (not publicly available). I presume this is because the problems are in a Codeforces Gym which is private, even if the gym is in a public group. However, making the gym public will also change some settings that I don't want to be changed. Is there a way to keep the gym private (only accessible through the group), while still allowing anybody to read the editorial?

PDF Editorials in Contest Materials

Somebody on Discord made the good suggestion of posting the Polygon-generated PDF editorial in contest materials, so that contestants would at least be able to view something. But this raises yet another question: what URL should I put when uploading to contest materials? Obviously, this should be the link to the editorial PDF, but is there any way I can get Codeforces to host the PDF editorial?

Does anybody know how to resolve these issues?

Full text and comments »

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

By qpwoeirut, 4 years ago, In English

Hello Codeforces!

We are excited to invite you to the first ever Bay Area Programming Contest! The contest is open for everyone to participate, and will start on Saturday, March 27, 2021 at 9:00UTC-7.

The contest was written by me, pocafup, EndlessVoid, ant101, and NikhilC.

There will be two divisions, the Novice division and the Advanced division. The Novice division is for participants with one year or less of programming experience and little to no contest experience, and the Advanced division is for everyone who doesn't meet that criteria. Each division will have 8 problems to solve in 4 hours. We will be giving out prizes totaling to at least 400 dollars for the top pre-college students in both divisions. This is an individual contest.

The contest will conducted in Codeforces groups. We will send out an invite to the group on our Discord server a day before the contest starts See the next paragraph for information about the contest groups. Signups, as well as more details about the contest and its prizes can be found at https://bayareacontest.org/.

There are 2 Codeforces groups. One is for official participants who are prize-eligible, and one is for unofficial participants who are not prize-eligible. To be prize-eligible, you must be a pre-college student. In addition, if you're taking Novice, you must have a year or less of programming experience. If you aren't sure if you're prize eligible, join our Discord server and ask an organizer. Please only join one group, and join as a Participant.

Inside each group, there will be a practice contest, which is already open. Please use the practice contest to make sure you're familiar with Codeforces, and take this opportunity to research and test out fast i/o techniques in your language.

For the actual contest, there will be two more contests that appear in the group. One will be Novice and one will be Advanced. Please only register for the division you plan to participate in.

Group for official (prize-eligible) participants

Group for unofficial participants

Please join our Discord server for contest announcements and updates. In particular, prize distribution will be done through Discord.

We hope to see you on the leaderboard!

Full text and comments »

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

By qpwoeirut, history, 4 years ago, In English

TL;DR My rating didn't change and I am very sad.

I recently took part in both Round #698 (Div. 1, since I was orange at the time), and Educational Round 103. My performance in the Div. 1 contest was pretty poor, and I lost 63 rating. This dropped me down to 2090, and changed my rank to Candidate Master. So now the Educational Round that I participated in afterwards should be considered a rated round for me. I think I registered after becoming a Candidate Master (although I'm not completely sure).

However, it seems that some complication has come up with rating changes. I did well in the Edu Round, and according to the TLE bot's rating predictor I had more than enough to get back to orange. But it seems I have been skipped entirely when rating changes took effect. I think this may be related to the temporary ratings rollback for Round #698, since it looks like a lot of people were affected by this.

If you want to check, you can view the Div. 1 standings for the Edu Round and look at all the purple names near the top. Even though they were all purple before the contest, their ratings have not changed. Furthermore, all the purples in the Div. 1 standings (or at least the first 10-ish that I checked) were orange before Round #698, and their ratings have not changed.

Is this supposed to happen?

Full text and comments »

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

By qpwoeirut, history, 5 years ago, In English

This is my first blog so please tell me if something can be improved.

I've noticed that a lot of the blogs and comments on CodeForces are from people asking for help to debug their code. And while I think this is fine, and people ask for help if they're stuck, these comments and blogs take up a lot of space, especially in Recent Actions and Contest Announcements. For people who don't feel like debugging someone else's solution at the time, it can get annoying to scroll through those comments or blogs. I admit that I have better things to do than scroll through Recent Actions over and over, but I'm (hopefully) not the only one and this would help people find what they're looking for faster.

This would also help people who do debug others' code, and the people asking for help. I recently saw someone post the same request for help on 4 different blogs. See here, here, here, and here. Having a specific area for people to ask for help would stop this, and would match people who need help with those who can help them faster.

I understand that the CF team is probably busy during this time, making sure they're staying healthy and making sure CodeForces doesn't crash every contest. But I thought I'd just throw this idea out there to see whether it's possible, or if there's some obvious flaw I've missed. I know tags exist, but many people don't seem to use them and I don't think you can tag a comment.

Feel free to add your thoughts below.

Full text and comments »

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