The Moscow Institute of Physics and Technology welcomes high school students to take part in the programming boot camp **Moscow Workshops Juniors**! The boot camp will be held **from February, 25 to March, 6.**

The educational program includes daily studying contests, thematic lectures and practice. In a free time participants could join the popular science lectures, do sports, play the intellectual games and be involved in other activities. According to the results of the introductory contest the participants are divided into divisions depending on their skill level. Participants can choose the most interesting topics and make an appropriate training program. If a participant finds the curriculum too simple or difficult, he can change division.

To take part in the camp, you have to pass qualifying online tours, its format is close to the Olympiad in Informatics. You can participate in several rounds or only in one tour, the ranking of the participants is made according to the results of four rounds. The selection rules can be found by the link.

There are four qualifying rounds:

**October, 27** at 16:00 pm UTC+03

**November, 18** at 12:00 pm UTC+03

**December, 16** at 12:00 pm UTC+03

**January, 20** at 12:00 pm UTC+03

Moscow Workshops Juniors suggests awarded high school students several opportunities of participation. If you are a prize-winner of national Olympiads in informatics 2017-2018, you are invited to take part in the Workshops **free of charge**! For participants of national Olympiads in informatics 2017-2018 the Workshops cost **$400**, for another participants – **$700**

Have questions still? Write to organizing committee email: zksh-team@phystech.edu

There is a limit for character count in the application page. For example, I can't paste my codeforces account link or my school name.

Thanks! We fixed it

MIPT is the best university!

So the Octomber one is just the trial round or an actual qualification round? (the first qual. round is "temporarily unavailable")

Is there a tutorial for the first round? and can we discuss problems now?

How about the accomodation ? How much is it and where ?

Can anyone describe the solution for problem D: Presents?

You need to find n smallest linear combinations of presents. For this, I used set<pair<int,int>> to store price and linear combination hash. Hash was just sum of random weights assigned for each present. Initially set was with {{0,0}}. I just removed a minimal element (x,y) from set n + 1 times and added elements (x + p[i], y + w[i]) to the set and added x to the answer. w[i] is just a random value assigned to each present.

isn't there a high probability that there would be a hash-collision as it is just a linear combination of random weights. I feel like a collision would be frequent.

Maybe it can be reduced by storing a triplet in the set and for each present have two different random weights.

Yes, you could store multiple hashes, but as I have seen, random weights are expected to work almost all of the times. It is quite unpredictable. I don't know if any anti hash anti-hash tests exist. Thinking about the ways to check collisions I came up with a trie-ish idea. You could store those linear combinations in a trie (moving down one node means adding some present) and you would only need to store O(1) data to be able to recover a full linear combination. It would be harder to implement and probably a lot slower. And we need to store only up to 1000 best linear combinations at a time if the hash is a random 64-bit integer collision should not occur.

Assuming that the both the numbers in the tuple randomly and uniformly vary between 1 to 1e9, then there are 1e18 total combinations. Probability of a collision for n numbers would be about n^2*(1e-18) which is basically 0. However, I am not sure how good the assumption is.

You should use birthday paradox to find the exact probability.

Yes. In my calculation I assumed there would be n^2 comparisons(although there are actually nC2 comparisons). Each comparison has 1e-18 probability of collision. Hence I multiplied n^2*1e-18.

If someone needs the solutions for the problems from the first qualification, here are mine:

Problem A

Problem B

Problem C

Problem D

Problem E

Problem F

Is there public standings available somewhere? (Past contests and an ongoing one)

Do you mean ongoing icpc workshop standings? This is a topic for school students.

Oops, the wrong topic indeed :) Supposed to ask in a different one :) Yep I meant the ongoing icpc workshop.

UPDfound them, now there're links from the main webpage of the workshopIt shows that the contest started in e-judge and 2 hours remaining. In the mail and that blog time of the contest is 12:00 PM UTC +3 which is 1 hour from now. What's happening?

Only russian statements too.

Now it shows that private contest or wrong division error. Will there be a contest with English statements?

On top there is this line: [Moscow Workshops Junior 2019 Second Selection Round (ранний старт)] [Moscow Workshops Junior 2019 Second Selection Round (early start)]

For me it shows WRONG DIVISION or PRIVATE CONTEST

The official link for the Selection 2.

The contest 942 occassionally was opened some time before the official start, so now it is closed (except for those several contestants who submitted in there).

Pretty nice, huh?

The inconsistent results will be banned. And with very high chances only the number of the solved problems will matter in this qualification round.

Nice to hear that. Thanks.

Is intended complexity for F (with 2-Sat + binary search)?

If yes, I think the time limit is awful and I'm really curious why organizers set it to just 4 sec.

(link to TL30 solution)

Intended complexity is . One of the jury solutions takes less than one second.

Can you share the solution?

One part of 2-sat edges are between points with the same x/y coordinate, you can find nearest ones in O(nlogn). Another part is between nodes with max(abs(x-x1),abs(y-y1))<=d, It can be shown that it is sufficient to use edges in MST with weights max(abs(x-x1), abs(y-y1)). I think that MST is a subset of the edges then you sort points by (y + x, y — x) in all four possible ways and then, while inserting a point, make the edge to the closest point.

Hello everyone!

Due to technical problems in the 2nd qualifying round there will be an additional qualifying round — November, 25 at 12:00 pm UTC+03.

Did top 40 from the 2nd qualifying round (November 18) qualified for the camp?

What does pink colored name in the standings mean?

High-level organization

It seems that the round is planned to begin at 12:00 Moscow time, contrary to what we were announced in the last e-mail. "December 16 at 16:00 Moscow time."

Can anyone explain the solution for problem B in the third qualification round which was held today?

Thanks in advance :)