ICPCNews's blog

By ICPCNews, 21 month(s) ago, In English

text

Hello, Codeforces!

UPD: Challenge is over. You can find results in this post

We are happy to invite you to an exciting online event: ICPC 2023 Online Spring Challenge powered by Huawei, which will start on April 13, 2023, 11:00 UTC.

In this Challenge, you will have a unique chance:

  • to compete during 14 days online challenge
  • to solve 1 exciting problem prepared by Huawei
  • to win amazing prizes from Huawei!

As a special prize, Huawei together with ICPC Foundation will provide the travel trip to the 46th Annual ICPC World Finals in a guest role!

Everyone is welcome to participate. It is an individual competition.

ICPC 2023 Online Spring Challenge powered by Huawei (open to the public):

Start: April 13, 2023 11:00 UTC (UTC+0)
Finish: April 27, 2023 10:59 UTC (UTC+0)

We hope you'll enjoy this complex yet very exciting Challenge!

Problem

This time we’re delighted to provide you with a new challenging problem from Huawei — Buffer Sharing in Multi-Tenant Database Environment, which is prepared by Huawei 2012 Labs and Huawei Cloud Computing.

Nowadays everyone uses databases directly or indirectly. For example, databases of service providers store shopping records, transaction records, or ticket purchase records. During this challenge, you will work with the multi-tenant database, in which a single database instance is divided into multiple virtual sub-databases, serving different tenants of cloud service.

In such databases, different tenants need to be isolated from each other to prevent services from affecting each other. Therefore, buffer is considered as an important resource for management of large amount of data. When the amount of data in the database buffer reaches the maximum value, the database buffer evicts some data from the memory based on the eviction algorithm and loads new data pages from the disk. Your goal is to optimize sharing and isolation of database buffers in the multi-tenant database. While replacement algorithms considered in this contest be one of the core algorithms, we believe there are multiple approaches one can try here, and some crossover of the algorithms will also increase your chances to win!

REGISTER

Prizes

Rank Prize
Grand Prize (Rank 1) € 15 000 EUR + the travel trip to the 46th Annual ICPC World Finals in a guest role
First Prize (Rank 2-10) € 8,000 EUR
Second Prize (Rank 11-30) € 3,000 EUR
Third Prize (Rank 31-60): € 800 EUR
TOP 200 Participants Souvenir T-shirt
* If the allocated Huawei Challenge prize cannot be delivered to your region for any reason it may be replaced by another prize of the same value (if no legal restrictions), at the discretion of the Sponsor.

To be eligible for Certificates of Participation and to win prizes you are required to register at https://icpc.global/regionals/finder/Spring-Challenge-2022 by April 26th.

If you are an employee of Huawei, we invite you to participate in a competition in a special corporate scoreboard. To do this, register at the link in the secret Codeforces group. Please note that you must register even if you already have a Codeforces account, as this group has its own separate account system. Good luck!

Challenge Rules and Conditions

By participating in this Challenge, you agree to the Conditions of Participation and Challenge Rules. If you cannot access this document, please email manager@icpc.global

Good luck, we hope this will be fun!

Update, as of April 27

Congratulations to all the participants of the ICPC 2023 Online Spring Challenge powered by Huawei!

As stated in the problem statement, the jury needs to test the latest non-zero score submissions on the final set of tests after the end of the contest. Results will be announced no later than May 1, 2023

If you registered for the Challenge by April 26th and submitted at least one response, an ICPC Certificate of Participation will be posted on your ICPC Challenge Team Record in the “Attachments” section by the end of May.

Update, as of April 29

Please ensure you register on ICPC.global using the same email as your Codeforces account no later than Fri, May 5th in order to be eligible for prizes and a Challenge certificate. If you have already registered on both platforms, please ensure your ICPC profile email matches the email used on Codeforces.

Update, as of May 1

We are glad to announce the completion of the ICPC 2023 Online Spring Challenge powered by Huawei and announce its results. Thank you very much for your interest in the competition. It was exciting for us to follow the results. We hope you enjoyed the challenges.

All tests are done, and we are glad to announce that the results in the Standings are final!

Congratulations to winners! Thanks again for your interest. We will be glad to see you in our future contests.

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

| Write comment?
»
20 months ago, # |
  Vote: I like it +8 Vote: I do not like it

can i participate if i am a huawei employee

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

    if no then the "Everyone is welcome to participate." is misleading

    • »
      »
      »
      20 months ago, # ^ |
        Vote: I like it +13 Vote: I do not like it

      i think you can. just tell them to skip you for prizes

  • »
    »
    19 months ago, # ^ |
      Vote: I like it +8 Vote: I do not like it

    Yes, you can participate in a special corporate scoreboard. Added information about that to post

»
19 months ago, # |
  Vote: I like it +49 Vote: I do not like it

Could you please tell me how to register on this site ICPC global Spring Challenge to claim the prizes?

  • »
    »
    19 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    First you need to register on ICPC Global. Then follow the link and find your account by nickname or email

»
19 months ago, # |
  Vote: I like it -19 Vote: I do not like it

will it be rated??

»
19 months ago, # |
  Vote: I like it +26 Vote: I do not like it

When I register on the site ICPC Global Spring Challenge and create a new team, it says "Person XXX is twice in team XXX (834853)!". Could you please tell me what's going on?

  • »
    »
    19 months ago, # ^ |
      Vote: I like it +8 Vote: I do not like it

    Maybe you have registered the same team before for ICPC. I faced the same issue and changing the team name worked for me.

  • »
    »
    19 months ago, # ^ |
      Vote: I like it +21 Vote: I do not like it

    You need to tick the box "I will be a coach and a participant" and do not enter yourself in the field of a team member

»
19 months ago, # |
  Vote: I like it 0 Vote: I do not like it

I have issues registering on the ICPC website too. My 'team' status has been stuck at the "Pending" stage, and under the "Your teams" widget, my team has a red exclamation mark with mouseover annotation "Eligibility issues". Is this an expected behaviour and am I supposed to just wait for the status to be updated to "Accepted"? I saw on the ICPC contest page that already 92 'teams' are listed. Thanks!

»
19 months ago, # |
  Vote: I like it -25 Vote: I do not like it

Non-rated, right?

»
19 months ago, # |
  Vote: I like it 0 Vote: I do not like it

No rated contest in upcoming 2 weeks =(

»
19 months ago, # |
Rev. 2   Vote: I like it 0 Vote: I do not like it

for receiving prizes do I need to have any master card / visa card ? ICPCNews

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

    Dear Nafis, the prize will be transferred to the bank account specified by the winner.

»
19 months ago, # |
  Vote: I like it -34 Vote: I do not like it

will the prize be paid in bitcoins?

»
19 months ago, # |
  Vote: I like it +23 Vote: I do not like it

How to bind the team in icpc.global to CF account? Use the same email to register?

  • »
    »
    19 months ago, # ^ |
      Vote: I like it +13 Vote: I do not like it

    Yes, same email address — the screenshot is from a previous Huawei contest

»
19 months ago, # |
Rev. 2   Vote: I like it -6 Vote: I do not like it

Is it enough to register in the codeforces contest to get a chance to win prizes? $$$\newline$$$ Is it necessary to register on the icpc website?

  • »
    »
    19 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Yes, they mentioned that we have to register to be able to get a prize.

»
19 months ago, # |
Rev. 2   Vote: I like it +11 Vote: I do not like it

Which output is considered as Wrong Answer?

For example, if for query $$$x$$$ I print $$$x \bmod q$$$, why is it WA on all tests?

  • »
    »
    19 months ago, # ^ |
      Vote: I like it +13 Vote: I do not like it

    Well, I guess because of following.

    Assume $$$Q^{min}_t = 4$$$. Assume I do following: let the $$$[1, 4]$$$ be the segment of tenant $$$t$$$, and for query $$$t \; x$$$ I answer $$$(x - 1) \bmod 4 + 1$$$. Then, if input queries are $$$[t \; 1, t \; 5]$$$, then I print $$$1 \; 1$$$, and its considered as wrong answer, because I could find another free frame for page $$$5$$$.

  • »
    »
    19 months ago, # ^ |
    Rev. 2   Vote: I like it 0 Vote: I do not like it

    Edited

    This is Wrong
    • »
      »
      »
      19 months ago, # ^ |
        Vote: I like it +3 Vote: I do not like it

      "If you use some of the q slots for the first time, then you can use that slot only for the tenant of that first time".Why?

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

        I misunderstood the problem. A tenant $$$x$$$ can evict a page of a tenant $$$y$$$ if $$$x$$$ has less than $$$Qmax_x$$$ occupied slots and $$$y$$$ has more than $$$Qmin_y$$$ occupied slots

»
19 months ago, # |
  Vote: I like it +178 Vote: I do not like it

Sorry in advance for grumbling and being too pessimistic, I really like that Huawei runs marathon-style challenges every year with great prizes, and don't want to discourage organizers from doing it in the future!

(Hope it is ok to post this message during the competition as it is absolutely unrelated to a specific problem).

But why do you never tell how the tests are generated? The task descriptions are usually very general, and it is impossible to solve them for all cases. So the only way to write a good solution is to guess how the input data is generated and what patterns it has. Guessing how authors generated data is not fun!

Probably you want it to be similar to real life, but in real life, you can do some experiments, log interesting events and analyze the data.

I think it would be much more interesting to solve the challenge if you could share test generators (similar to AtCoder Heuristic Contest or TopCoder Marathons).

  • »
    »
    19 months ago, # ^ |
      Vote: I like it +87 Vote: I do not like it

    Second this. Otherwise significant part of contestants' effort will be spent on black box experiments which is neither fun or educational...

  • »
    »
    19 months ago, # ^ |
      Vote: I like it -57 Vote: I do not like it

    Hi, thank you for paying attention to the Challenge. The tests, as well as details about their generation, are secret. The intention is to incentivize contestants to solve the general problem, and not a particular test set.

    • »
      »
      »
      19 months ago, # ^ |
        Vote: I like it +49 Vote: I do not like it

      The solution is judged on your particular test set, not on the "general problem". So, we are solving a particular test set anyway.

      It means that knowing some details about the input generation is a huge advantage (and it's necessary if we want to get a good rank). Unfortunately, if the tests are secret, the only ways to get some information about the tests are

      • trying to guess some properties of the input by writing solutions that perform well only on tests with those properties, and checking if they get a high score;
      • binary searching the inputs.

      Hence, the winners of the challenge will have spent (wasted?) a lot of time reverse engineering the inputs, which is not what you are trying to achieve.

      • »
        »
        »
        »
        19 months ago, # ^ |
        Rev. 2   Vote: I like it +1 Vote: I do not like it

        binary searching the inputs.

        The final score will be calculated by testing not on these inputs but on a different set

        • »
          »
          »
          »
          »
          19 months ago, # ^ |
          Rev. 2   Vote: I like it +12 Vote: I do not like it

          The final set is "similar" to the preliminary set.

          In one of the previous challenges, I've found out by binary search that a variable in the range $$$[0, 1]$$$ was actually almost always in the range $$$[0.1, 0.2]$$$. Of course, binary searching single inputs is not so useful, but you may want to find out how frequently something happens over all the tests.

          • »
            »
            »
            »
            »
            »
            19 months ago, # ^ |
            Rev. 2   Vote: I like it +5 Vote: I do not like it

            You get more information from a submit, namely execution time and memory consumption. Thus there are faster ways than binary search.

            • »
              »
              »
              »
              »
              »
              »
              19 months ago, # ^ |
                Vote: I like it 0 Vote: I do not like it

              Ok, good to know. Anyway, I still think that secret test cases are annoying (and some people seem to agree). I would like to hear more feedback from other people.

    • »
      »
      »
      19 months ago, # ^ |
        Vote: I like it +33 Vote: I do not like it

      In this case, the problem is it's too general.

      Hidden testcase generation

      • Prevents analyzing the characteristics of the entire set of possible testcases

      • Prevents local benchmark with more testcases

      • Prevents pointing out the problem of current solutions and improve it by analyzing behavior for each testcase

      • Causes more unexpected results at the system testing

      Look at AHC(AtCoder Heuristic Contests). Each of them has clear testcase generation methods, but I never feel "Oh no, it's a too specific problem!" Sharing the information about arguments of the utility function is a prerequisite of the problem.

      I feel more explanation about testcases is needed to make it clear the situation we have to solve.

    • »
      »
      »
      18 months ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      One possible solution would be to allow contestants who manage to submit a solution scoring above some threshold $$$S$$$ to contribute test cases themselves.

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

    I second this. I kiiinda get organizers motivation and I don't want to say it's straight up bad decision, but not being able to reliably conduct any meaningful local tests was what swayed me away from engaging in this one

  • »
    »
    19 months ago, # ^ |
      Vote: I like it +30 Vote: I do not like it

    Now that the contest is over: testcases felt a bit like a guessing competition to me. Case 26 and 27 in particular felt very arbitrary. It turned out that you have to evict the most frequently used page here to score well. I don't see how hiding those cases could lead to a more desirable outcome for the organizer in terms of solution quality. You just submit random stuff and hope for a lucky hit that increases your score.

»
19 months ago, # |
Rev. 2   Vote: I like it +38 Vote: I do not like it

I'm a bit confused with score calculation. A quote from description:

The value $$$SLA_t^{base}$$$ indicates the number of page faults obtained by using the LRU algorithm when the buffer size of tenant $$$t$$$ is $$$Q_t^{base}$$$

Doesn't this mean that if I will use LRU with buffer of size $$$Q_t^{base}$$$ I should get $$$Cost_j=0$$$ and as a result $$$Score_j=500$$$ for all tests? Or $$$\sum Q_t^{base} > Q$$$ and it is impossible to have buffer of size $$$Q_t^{base}$$$ for all tenants? But then, if there is no upper bound on $$$\sum Q_t^{base}$$$, they could be arbitrary large to fit whole database for every tenant and then LRU or any other cache eviction strategy just doesn't make sense.

»
19 months ago, # |
Rev. 3   Vote: I like it 0 Vote: I do not like it

I am confused a bit in the number of faults in the 1st TestCase. Should it be 0 or 10. if we assume that initially the buffer is empty then the number of page faults would be 10, if not we could initially fill the buffer with the pages (1-5) of both users and number of page faults would be 0. Can someone please clarify this.

  • »
    »
    19 months ago, # ^ |
      Vote: I like it +1 Vote: I do not like it

    It depends not only on your number of page faults, but also on number of faults in the base solution (LRU). So if your SLA matches base answer, which is most likely also 10, you’ll get Cost=0 and Score=500

»
19 months ago, # |
Rev. 10   Vote: I like it +81 Vote: I do not like it

Score distribution by user
»
19 months ago, # |
Rev. 5   Vote: I like it +63 Vote: I do not like it

Hello, could someone please help me to understand
what is the point of "3" factor in the $$$f_1(x)$$$ function formula?

How could it possibly affect the score calculation?

In the formula for $$$Score$$$ calculation we use cost divided by cost
(our cost divided by best baseline cost),
which means that the score should not depend on any constant factor in $$$f_1(x)$$$

Thus, it seems to me that $$$f_1(x)=3 \times x^2$$$ should result in same scores as $$$f_1(x)=x^2$$$ would.
Where am I wrong? (if I'm wrong)

  • »
    »
    19 months ago, # ^ |
      Vote: I like it +9 Vote: I do not like it

    Hello, in order to answer your questions in time, please log in to the competition question interface https://mirror.codeforces.com/contest/1813 and click 'ask a question'

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

How can the problem "... is twice in team ..." be fixed while the registration process?

»
19 months ago, # |
  Vote: I like it +12 Vote: I do not like it

Am I able to get prizes if i'm not studying in university? During team registration it asks for a university name.

  • »
    »
    19 months ago, # ^ |
      Vote: I like it +9 Vote: I do not like it

    About prize money, that's not a problem. As long as you have a collection account and the account can be paid through the banking system.

  • »
    »
    19 months ago, # ^ |
      Vote: I like it +18 Vote: I do not like it

    You can choose ICPC U as your institution in the ICPC System

»
19 months ago, # |
Rev. 2   Vote: I like it -32 Vote: I do not like it

is it possible to make a limit on the number of submissions at a certain time, because I see a huge queue of people who disrespect others

»
19 months ago, # |
Rev. 2   Vote: I like it 0 Vote: I do not like it

(EDIT: problem solved!)

I'm now getting "Runtime error on test 1". I suspected it's not really my code crashing (works fine locally), so I started my Rust program with:

fn main() {
	std::thread::sleep_ms(200);

And I still get:

#1: Runtime error [15 ms, 0 MB]

Note that the sleep itself should take 200 ms. So I suspect there's a server issue. Is there someone who can check it?

  • »
    »
    19 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    15ms is a user (processor) time, but not a real time. Sleep increases a real execution time and doesn't affect the user time.

    Try to replace 200 with a huge value: you should recieve something like "Idleness limit exceeded" (don't know the exact name of this outcome on CF).

»
19 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Can I see other people solutions after contest ?

»
19 months ago, # |
  Vote: I like it +73 Vote: I do not like it

20 people in 200 points' difference... There must be a huge rank reorder after system test...

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

    Some of these are super depressing.

    Preliminary rank changes
    Final rank changes
    • »
      »
      »
      19 months ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      Another half of them is quite uplifting though )

»
19 months ago, # |
  Vote: I like it 0 Vote: I do not like it

ICPC site says that my institution is not eligible for ICPC, can I set ICPC University instead? Also what is intended way to link Codeforces account with ICPC account? What exact time the registration ends?

  • »
    »
    19 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Yes, please use "ICPC U" as your institution. There is no way to link the CF account to ICPC account, so all matching will be by email — please use same email in both systems

    • »
      »
      »
      19 months ago, # ^ |
        Vote: I like it -10 Vote: I do not like it

      What if I have different mails for CF and ICPC?

»
19 months ago, # |
  Vote: I like it 0 Vote: I do not like it

How our codeforces account and our ICPC registration are supposed to be linked? Do we have to use the same email adress?

»
19 months ago, # |
  Vote: I like it 0 Vote: I do not like it

If I register after April 26th, will I be able to get a certificate?(

  • »
    »
    19 months ago, # ^ |
      Vote: I like it +12 Vote: I do not like it

    Yes, but you need to do that before 5th May — that's deadline for registration.

»
19 months ago, # |
  Vote: I like it +42 Vote: I do not like it

Will there be a cheating check after the contest?

»
19 months ago, # |
  Vote: I like it +67 Vote: I do not like it

Funny, the two top contestants from North Korea had a jump of scores almost at the same time and have now very similar scores.

  • »
    »
    19 months ago, # ^ |
    Rev. 2   Vote: I like it +44 Vote: I do not like it

    By the way, Codeforces/ICPC should have some strategy to prevent a handle from participating from multiple accounts (assigned to each of his family), just to get more prizes... And plagiarism detection is not enough...

  • »
    »
    19 months ago, # ^ |
      Vote: I like it +14 Vote: I do not like it

    BTW, one of them is known for getting top places in the previous Huawei challenges. But the second CF user was created just before this contest and this indeed looks a bit suspicious. Especially submissions' timing.

  • »
    »
    19 months ago, # ^ |
      Vote: I like it +20 Vote: I do not like it
    • »
      »
      »
      19 months ago, # ^ |
        Vote: I like it +1 Vote: I do not like it

      | whiteapple | is invited to the reception: now explain how to get a score of 14246, which would require structure knowledge of testcases (e.g. pattern switching per tenant...), in just 1 try...

      • »
        »
        »
        »
        19 months ago, # ^ |
          Vote: I like it -10 Vote: I do not like it

        I think he can explain his solution correctly. Scoring 14k+ is huge, but it's quite clear he is a top scorer in the contest, whose main account is also present in the leaderboard.

        The organizer should verify every top scorer's identity. There may be more like this account; maybe the top 2 (before the system test) are the same person.

        Finding similarity through plagiarism will fail because they are top-rated, have huge knowledge about problem solving, and can solve the same problem in multiple ways.

        I lost 30–40 positions in the last 2 days of the contest. That's a joke after all these efforts.

»
19 months ago, # |
  Vote: I like it +18 Vote: I do not like it

I can't figure out if I did everything right. Please tell me if my registration was correct.

»
19 months ago, # |
Rev. 2   Vote: I like it +7 Vote: I do not like it

Can anyone share an algorithm which got >=14000pts in contest?

I can only do 13700 by dynamic swapping between LRU and LFU.

  • »
    »
    19 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    I hope after system testing they will enable the possibility to read others' solutions

    • »
      »
      »
      19 months ago, # ^ |
        Vote: I like it +11 Vote: I do not like it

      They wont. I viewed previous contests and the solutions are unavailiable.

  • »
    »
    19 months ago, # ^ |
    Rev. 2   Vote: I like it +12 Vote: I do not like it

    I couldn't get past ~12k by dynamically swapping between LRU and LFU :( I guess I should've tried this more.

    Btw, MRU did really well on tests 26 and 27 for me. So maybe you could try dynamically swapping between all three of them (my final submission was exactly this, but ig my swapping strategy was really poor).

    PS: Did you mean "second chance" LRU? Plain LRU didn't seem to be doing well enough for 13.7k.

    • »
      »
      »
      19 months ago, # ^ |
      Rev. 2   Vote: I like it +11 Vote: I do not like it

      I did some changes in LRU like adding Cnt/4 to the priority, which gives about 500 points.

      I tried second chance LRU, but it worked worse.

      I also used something similar to what nweek said to optimize tenant/algorithm choosing.

      In the end I'm actually swapping between LRU, 70%LRU+30%LFU, 30%LRU+70%LFU, LFU algorithms.

      • »
        »
        »
        »
        19 months ago, # ^ |
          Vote: I like it +4 Vote: I do not like it

        Interesting. Btw, could you please explain the motivation behind your tenant-switching formula? I tried a bunch of different strategies (for example, ran all three algorithms in parallel; and then whichever algorithm performed well for the last 1000 queries, switched to that one) but none of them worked well. Now, looking at nweeks's formula, I'm lost as to how one would come up with that.

        • »
          »
          »
          »
          »
          19 months ago, # ^ |
            Vote: I like it +9 Vote: I do not like it

          I was just looking for a formula to choose the right algorithm.

          Soon found that the formula in the statement for score calculating can be calculated dynamically. So I choose the algorithm with highest score to use.

          Then I found that each tenant is an individual part in the final score. By going farther in the formula I found that their effect on scores increase in a speed of w_i^2/w_std, which w_std is the std fail-count. I assume an evict gives same effect on different tenants, so the tenant with smallest w_i^2/w_std will be chosen.

        • »
          »
          »
          »
          »
          19 months ago, # ^ |
            Vote: I like it +20 Vote: I do not like it

          It's actually quite natural : My first idea was to just take the person which minimizes the score given in the statement. Then I realized that taking the max was silly because we don't treat the case where our solution is doing better than expected. So I dropped the max and made sure the result was of the correct sign. Finally, I noticed that you may evict many times in a row someone that has a low score, but his number of faults doesn't change while you do that so you might increase the score a lot because of that. To counter that, I look at the ratio cache used / Qbase. If it's high then you can easily match LRU so you want to evict him more. If it's low, it's going to be hard to match LRU so you should evict him less. So I just divided by that ratio squared. I hope everything is clear now.

  • »
    »
    19 months ago, # ^ |
      Vote: I like it +33 Vote: I do not like it

    There are 3 algorithms that are actually useful : LRU LFU MFU (works for tests 26,27)

    Taking the best one for each test case is enough, but you need a good strategy to decide between tenant. To decide between two different tenants my formula is : ((faults — faultsInSolution) / faultsInSolution)^2 * sign(thing on the left) * priority / (cache Used / Qbase)^2 This alone gives 14k (even 14400 I think) To gain the last points, you had to notice that in some tests, the structure was in blocks where two blocks of the same person are identical. I wrote a program that could see this case, and I ran belady's algorithm by looking at what happened in the past. This gives 500 on test 4 for example.

    • »
      »
      »
      19 months ago, # ^ |
        Vote: I like it +31 Vote: I do not like it

      To gain the last points, you had to notice that in some tests, the structure was in blocks where two blocks of the same person are identical.

      The tests, as well as details about their generation, are secret. The intention is to incentivize contestants to solve the general problem, and not a particular test set.

      xdd

      • »
        »
        »
        »
        19 months ago, # ^ |
          Vote: I like it +14 Vote: I do not like it

        Yes I didn't really like that part of the contest. I had the same feeling when MFU passed, no one actually uses that as an eviction policy in real life. Just happened that some tests were very weird. I think I tried a dozen different eviction policies, at the end, only 3-4 were interesting. Other than that, there were some interesting ideas to have in that contest. But those ideas were barely enough for top 30.

        • »
          »
          »
          »
          »
          19 months ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          no one actually uses that as an eviction policy in real life

          I believe that it depends on where caching is performed. Because in the environments with repeated looping accesses something based on MFU actually may be useful.

          Again, it's a pity that we hadn't any hints for at least which environment was simulated in the input data. Then there were more conscious work towards certain directions instead of trying random stuff or guessing/extracting input data characteristics.

          P.S. Congrats with the impressive score, great job!

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

          Learned a lot and now I am so curious about how you get 500pts in 4th testcase. Could you explain more about it? Congratulations to your great performance in this contest. XD

          • »
            »
            »
            »
            »
            »
            19 months ago, # ^ |
              Vote: I like it 0 Vote: I do not like it

            TC 4 is : 25% tenant 1, 25% tenant 2, 25% tenant 1, 25% tenant 2. Block 3 = block 1 and block 2 = block 4

            To solve it, just use LFU during the first two blocks. Then use Belady's algorithm from what you saw in the first two blocks : basically evict the page that is gonna appear the latest. This gives almost 500. And it works on a few other test cases as well (3 TCs I think)

            • »
              »
              »
              »
              »
              »
              »
              19 months ago, # ^ |
                Vote: I like it +1 Vote: I do not like it

              Thanks for your kindness. I hope this also works for the system test.

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

              Again congrats!

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

                Thanks !! very unexpected.

    • »
      »
      »
      19 months ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      Taking the best one for each test case is enough

      Just to clarify, did you select the best one for each test case per tenant or used same strategy for all tenants in that TC? And did you decide which one is best once at some point or did you continuously/periodically adjust which one is the best along the way?

      • »
        »
        »
        »
        19 months ago, # ^ |
          Vote: I like it +5 Vote: I do not like it

        Best one per test case per tenant. It dynamically changes during the test case. Basically I simulate all my strategies for each user on various buffer sizes between Qmin and Qbase. When I want to evict a tenant, I look at the best strategy on the cache size closest to what the tenant is actually using. So it can change many times

  • »
    »
    19 months ago, # ^ |
      Vote: I like it +13 Vote: I do not like it

    Let's define a few caching strategies: LFU, LRU, segmented LRU+LRU (those were mentioned in the statement), MFU (evict the most frequent one, testcase 26+27), some hybrid (page hits + 3e-3 * time of last hit), least frequent among the last few requests (I used 3 * tenant's current Q, but the factor doesn't matter that much).

    You run each of these strategies on each tenant and keep track of what gets the most hits. This strategy then becomes your main strategy for this one tenant.

    The decision which tenant to evict was rather painful, as whatever test I generated offline showed different behavior than submits on deciding whether or not a change was good. Here are some charts I made to see how close my prediction gets to the final SLA and such:

    After some trial and error I settled on evicting whichever tenant minimized the Score() function below

    code
  • »
    »
    19 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Dynamic swapping between LRU LFU MRU and MFU )

»
19 months ago, # |
  Vote: I like it 0 Vote: I do not like it

can't wait for system testing

  • »
    »
    19 months ago, # ^ |
    Rev. 3   Vote: I like it +21 Vote: I do not like it

    Harmony_'s solution is still running...(On test 29 now)

    It has been ~1h for it to be runnning.

    Hope that won't take another 1h in system test.

»
19 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Has anyone tried using RRIP? If so what base did you find to be most useful? My sol switches between LRU, LFU, RRIP base 2, 3, 4 XD

  • »
    »
    19 months ago, # ^ |
      Vote: I like it +8 Vote: I do not like it

    By switching do you mean that you periodically look at the recent history and determine which algorithm would have minimized the miss rate (or another function) and you end up using just that one for the near future?

»
19 months ago, # |
  Vote: I like it +10 Vote: I do not like it

are these the final results? i wanted a t-shirt

»
19 months ago, # |
  Vote: I like it +131 Vote: I do not like it

Dear judges, when will the system test begin?

»
19 months ago, # |
  Vote: I like it +19 Vote: I do not like it

I think it will be better to have the first few tests open to learn generation patterns and don't spend a lot of time trying to get their structure through test system.

»
19 months ago, # |
  Vote: I like it -9 Vote: I do not like it

I forgot subscribe on ICPC's site. I will lost my T-shirt....

  • »
    »
    19 months ago, # ^ |
      Vote: I like it +12 Vote: I do not like it

    Hi! We updated blog post: you still can register on ICPC system. Please do that till May 5th

»
19 months ago, # |
  Vote: I like it +56 Vote: I do not like it

Dear organizers, Will Huawei recruit high achievers for this Challenge? And will this be somehow taken into account when applying for a job at Huawei? Perhaps you will offer some positions for the participants?

If so, what positions in the table will be considered?

»
19 months ago, # |
  Vote: I like it +8 Vote: I do not like it

Testing seems to have started.

»
19 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Dear Huawei team, I would like to apologize for forgetting to register on the ICPC global website. Is it still possible to register now, or has the registration closed? If registration is no longer possible, would you consider opening it up again? Thank you for organizing this wonderful contest, and I appreciate your understanding in this matter.

  • »
    »
    19 months ago, # ^ |
      Vote: I like it +12 Vote: I do not like it

    We updated registration deadline: you still can register on ICPC system till May 5th

»
19 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Dear Huawei team, I would like to apologize for forgetting to register on the ICPC global website. Is it still possible to register now, or has the registration closed? If registration is no longer possible, would you consider opening it up again? Thank you for organizing this wonderful contest, and I appreciate your understanding in this matter.

  • »
    »
    19 months ago, # ^ |
      Vote: I like it +12 Vote: I do not like it

    We updated registration deadline: you still can register on ICPC system till May 5th

»
19 months ago, # |
  Vote: I like it +2 Vote: I do not like it

From 60th place before systests, to 72th after. Systests did me dirty :|

»
19 months ago, # |
  Vote: I like it +5 Vote: I do not like it

"The final tests will be very similar to the current tests."

  • »
    »
    19 months ago, # ^ |
      Vote: I like it +16 Vote: I do not like it

    0 points on testcase 12 — but looking at others going up and down, I'm even somewhat lucky with that.

    (the following takes best scores from before system tests into account, not the latest submission)

    • »
      »
      »
      12 months ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      Can you please do the same for the last challenge?

      • »
        »
        »
        »
        12 months ago, # ^ |
          Vote: I like it +9 Vote: I do not like it

        Sorry, I don't have the provisional standings in a machine-readable format this time. I can give you a screenshot however:  The first place changed, but none of provisional top 10 dropped below the line. Most notable changes for top 30 are Alex_2oo8 dropping to 31st and T1024 taking a nose-dive from 15th all the way to 34th.

»
19 months ago, # |
  Vote: I like it +42 Vote: I do not like it

Will upsolving be possible for this problem?

»
19 months ago, # |
  Vote: I like it -11 Vote: I do not like it

I forgot to register on the ICPC site. Can I still get the T-Shirt and the Certificate?

  • »
    »
    19 months ago, # ^ |
      Vote: I like it +20 Vote: I do not like it

    Please register on ICPC system till May 5th

»
19 months ago, # |
Rev. 2   Vote: I like it +16 Vote: I do not like it

Congrats to the winners. It seems the biggest ranking jumps (within TOP-60) after system testing, are on:

  • Rank#6: baguabagau who wasn't in TOP 60 pre-system-test, though making [at least] +55 positions
  • Rank#45: GJ.Ro (-43 positions)
  • Rank#51: CRH380BL (-44 positions)
  • Rank#85: meaningful (-66 positions)
»
19 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Dear Huawei team, I would like to apologize for forgetting to register on the ICPC global website. Is it still possible to register now, or has the registration closed? If registration is no longer possible, would you consider opening it up again? Thank you for organizing this wonderful contest, and I appreciate your understanding in this matter.

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

    We updated registration deadline: you still can register on ICPC system till May 5th

»
19 months ago, # |
  Vote: I like it -20 Vote: I do not like it

Dear Huawei Team, I was curious about the criteria used for selecting the final submission for judging. I understand that the most recent submission was chosen, but I was wondering if it would be better to consider the submissions with the highest scores instead. After the ddl, I realized that I may not have submitted my best version in the last moment for judging, and I was wondering if there is any possibility for a rejudging based on the highest scored codes. I understand that this may be a personal oversight, and I apologize for any inconvenience or disruption caused!

  • »
    »
    19 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    I had a similar issue in one of the past similar competitions. I got score equal to about 7 instead of about 180000. They just ignored me...

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

Question to those with top scores. Here are some of my lowest scores: 0 pts on test 12, 220 pts test 58, 176 pts test 68. What are your scores there? I would guess those are MFU tests, although I did not come up with such a crazy idea like MFU xD. Just curious.

  • »
    »
    19 months ago, # ^ |
    Rev. 2   Vote: I like it 0 Vote: I do not like it

    testcase 12 is definitely not MFU, then I wouldn't have gotten 0 points there. Case 58 (498 pts) and 68 (500 pts) might be.

    Points
  • »
    »
    19 months ago, # ^ |
      Vote: I like it +19 Vote: I do not like it

    Here are my points if you you are intersted :

    Points

    I'm not quite sure what was test 58, other people that used MFU also got a low score so I'm not sure is that. Maybe I have a hidden heuristic in my code that works well in that case which probably made me win.

    • »
      »
      »
      19 months ago, # ^ |
        Vote: I like it +5 Vote: I do not like it

      even my quick draft submission got more pts on Test#12, at least something to be proud of :D

      12: Accepted [7191 ms, 36 MB, 292.464 points]

    • »
      »
      »
      19 months ago, # ^ |
      Rev. 2   Vote: I like it 0 Vote: I do not like it

      Your points are so BIG

  • »
    »
    19 months ago, # ^ |
      Vote: I like it +5 Vote: I do not like it

    I'm not top scorer but I got 456 pts on test 12. My solution is to find the tenant and page with the min cost.

    For the cost of each page, I defined it as either 0 if the page doesn't appear for a period of time, or how much removing it will approximately affect the cost from function described in the problem.

»
19 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Anyone know how the T-Shirt will look like? :)

»
19 months ago, # |
  Vote: I like it +8 Vote: I do not like it

I wonder which data structures did you use for keeping LRU/LFU/… items ordered? I used regular STL set, though probably my solution was not very optimized, I felt like having more than 2-3 strategies running concurrently could risk in exceeding allowed time limit. As I understand for each strategy there should be 2 copies of it: 1st — simulated/virtual/shadow, which runs as if it was the only one strategy used, 2nd — real/actual copy, that has same shared items among all real strategies. So introducing an additional strategy would require 2x additional time. (Please, correct me if I’m wrong and only one copy of a strategy is enough)

Another small question is about LFU, which is often mentioned. Did you calculate frequencies only while item was in cache or even after it was evicted (total frequencies)? And if you ordered items first by frequency and second by time accessed, as there could be multiple items having similar frequencies, especially low ones. In that case seems like a better name would be like LFRU not just LFU.

  • »
    »
    19 months ago, # ^ |
    Rev. 2   Vote: I like it -7 Vote: I do not like it

    For the data structure I used a segment tree. That allows you to get and update the minimum of an array in logarithmic time. I modified it a bit to also keep track of the index where the minimum value is located. An alternative would be a priority queue where you allow the same page to be entered multiple times and make sure that you have the most recent one on removal.

    Regarding LFU, why not both: frequency over the entire run and over the last few requests only? Those can be two different caching policies that you compare against each other. I did sort by last access time as a tie breaker. LFRU would be a bad name because it's already taken.

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

      Hmm, well as you can see from my color, I have very vague understanding of segment trees for now )) Is it really faster than a regular set? You can get minimal element from it in O(1) and delete/reinsert it back in O(logN). Considering priority_queue — I'm not sure, why you might need same page multiple times there, but the main disadvantage of it for me (at least standard implementation) was that it seems impossible to delete an item from the middle from it (correct me if I'm wrong).

      Updated: Ahhh, probably understood, you meant instead of deleting item from pq, just inserting same page multiple times there.... okay. So will it be faster than a set?

      why not both

      Well, in my case because, I was limited by only 2-3 different strategies because of probably not very optimal implementation. Can you share how many strategies you had running concurrently in total (assuming there should 2 copies of each, right?)?

      Basically the LFU question arose because people are using freely the same term LFU, that in fact could mean quite different things for different people. And often implementation details could separate top 10 from top 100.

      • »
        »
        »
        »
        19 months ago, # ^ |
        Rev. 2   Vote: I like it +1 Vote: I do not like it

        It's probably faster than using a set, but the complexity is about the same (log for insert and update). I implemented everything with set using the same strategies as other described (dynamically swapping heuristics, in my case I used only LRU, LFU and MFU because adding additional did not impact the score significantly) and had no problems with efficiency (my code runs in about 7-8 s worst case).

      • »
        »
        »
        »
        19 months ago, # ^ |
          Vote: I like it -7 Vote: I do not like it

        My solution used a real caching strategy, 7 different virtual ones and an LRU with QBase for the score calculation per tenant. You don't need every strategy twice, you just build a new cache every time you chance strategies (using the current cache content and scoring of the strategy you want to use). The maximum runtime was around 11-12 seconds and I coded it in C# (which is a bit slower than C++), so I didn't really look for alternatives. You are right about time complexity in O-notation. It might still differ in a constant factor which is hidden in the O-notation (I really don't know how efficient or inefficient a C++ set is).

        For the priority queue the idea would be to add a new page every time you change a score of an existing page and also have some lookup array to track the latest update time of each page. Then, when you dequeue, you make sure that the time matches your expectation (or you dequeue again because you got an outdated value). Therefore you don't have to delete from the middle, you just delay the deletion long enough that it becomes a regular dequeue action.

        According to the rules I only have to grant Huawei a "non-exclusive license to [...] publicly display" my submission, so I think it's ok to share the code: https://gist.github.com/eulerscheZahl/9fd7ffe449f20fb49a1f972ef570e010

        • »
          »
          »
          »
          »
          19 months ago, # ^ |
          Rev. 2   Vote: I like it 0 Vote: I do not like it

          Thanks for explanation )

          I haven't thought about having only one real strategy and rebuilding it when switching. Though in worst case, if switching strategies on every request, it could perform worse than if keeping real copies for each strategy, but in reality you probably don't need to switch them so often. So it could be faster... depending how often you switch.

          And thanks a lot for sharing the code, I'll look into it more deeply a bit later. (from the first look it looks less messy than mine ))

    • »
      »
      »
      19 months ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      For LRU, where you can insert items only to the end, I know that you can use just double linked list + hashtable. So all operations will be in O(1). But for other ordering criteria you need something more complicated/slow.

  • »
    »
    19 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    I used kinda-persistent wrapper of set and vector, to copy state to a strategy-class effectively. Allowed my to change strategies as much as I like. However, coping strategies so often is bad, because you do not consider longterm impact of the strategy.

    • »
      »
      »
      19 months ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      kinda-persistent wrapper of set and vector

      Sounds a bit magical ) You still need to reorder all current items in set when switching, don't you?

  • »
    »
    19 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    For LRU, all operations can be done in O(1) with STL list and an array of list iterators. But for LFU, it won't be done in O(1) since we can't use pure LFU in this multi-tenant caching.

»
19 months ago, # |
  Vote: I like it 0 Vote: I do not like it

It seems some participants submitted few solutions but got high score. They probably generated local testcases and tested in local, I also tried but actually failed because all algorithms make similar results in uniform random testcases. Is there any good idea to generate a really good testcases that make us examine in local?

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

Stop ingnoring me, please. I registered for the Challenge by April 26.

You did not validate my team on the ICPC website and now I do not have a certificate in my personal account. Dear Jury, please correct this.

»
19 months ago, # |
Rev. 2   Vote: I like it +21 Vote: I do not like it

So far, nobody has talked about this issue. So I am making a comment.

Please remove the cheaters, and please try to find out group solvers (I don't know, but some of the contestant approaches in the contest time look fishy to me). There are some participants who just submitted 2-3 solutions and got 39k+. I am not 100% sure he is a cheater, but my mind says that I am about 99.99% sure. There may be some top contestant participate in this contest with multiple ids. And submit multiple versions of his probable solution. (I am not sure about my claim)

  • »
    »
    19 months ago, # ^ |
      Vote: I like it +19 Vote: I do not like it

    Most likely | whiteapple | will get away with it,

    Behind the scenes :D -->

    Unless ICPC does some identification interviews with the contestants, it wouldn't be easy..

»
19 months ago, # |
  Vote: I like it +24 Vote: I do not like it

Any idea why these contests always lack transparency? The ability to explore other solutions is such a great selling point of Codeforces.

»
19 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Is the scoreboard final?

  • »
    »
    19 months ago, # ^ |
      Vote: I like it +8 Vote: I do not like it

    last time they made an additional blog post to announce the winners. the statement update says

    Results will be announced no later than May 1, 2023

    • »
      »
      »
      19 months ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      Probably understood, last time they either did not find cheaters, or they did not choose cheaters from the list. If this time it will also be, then they are probably already used

  • »
    »
    19 months ago, # ^ |
      Vote: I like it -8 Vote: I do not like it

    Now it's final, see the updated announcement. No changes made to the rankings.

»
19 months ago, # |
Rev. 3   Vote: I like it +18 Vote: I do not like it

So why whiteapple haven't been removed from the score table? This account was simply created a few hours before the end of the competition. And If registration to the ICPC site wasn't extended, It wouldn't be able to win prizes. And it scored very high on the first try

  • »
    »
    19 months ago, # ^ |
      Vote: I like it +60 Vote: I do not like it

    I agree that this is a rather suspicious case. But I don't see any strong reasons to remove this participant from the standings. I can't just remove participants based on an atypical participation pattern. There are no signs of plagiarism or other strong arguments in the direction of violating the rules.

»
19 months ago, # |
  Vote: I like it -15 Vote: I do not like it

So why whiteapple haven't been removed from the score table? This account was simply created a few hours before the end of the competition. And If registration to the ICPC site wasn't extended, It wouldn't be able to win prizes. And it scored very high on the first try

  • »
    »
    19 months ago, # ^ |
      Vote: I like it +7 Vote: I do not like it

    devilcry I got to know that you are #61, man, you have all the rights to protest your missed prize. For me, at least, you are a winner :)

    • »
      »
      »
      19 months ago, # ^ |
        Vote: I like it +9 Vote: I do not like it

      Yeah, I also tried to send an email to the organizer on April 28th and they replied that they would seriously investigate the matter, but they haven't gotten back to me whether they verified it or not, yet they published the final list on May 1st. At this point, without strong evidence, I had almost given up on defending my rights, because 'whiteapple' might be really strong enough to get a high score in one try or successfully avoid cheating by just slightly modifying the logic and the style of the code. Finally, I would like to thank codeforces and Huawei officials for their work on this case.

»
19 months ago, # |
  Vote: I like it 0 Vote: I do not like it

can anyone share the top-60 code? it's my code: https://github.com/MQN-80/Buffer-Sharing-in-Multi-tenant-Database-Environment (top-118), I use the derivative of SLA to choose the user, then every user's blocks are listed by LRU(improved by hot-cold zone), I want to konw how to choose the appropriate algorithm (LRU,MRU or LFU) based on the given data.

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

    A robust way to choose the best algorithm for the given data is to simulate all of them, keep track of their hit rate, and switch to the best performing one.

»
19 months ago, # |
  Vote: I like it +8 Vote: I do not like it

Just curious, what's the biggest score anybody achieved without simulating multiple policies but instead following a single one?

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

    The best I got with a single policy was 10878.186, using as queue priority this:

    last_block_access_time + 10*TOTAL_MEMORY/TOTAL_QUERIES*block_frequency — 6*TENANT_CURRENT_ALLOCATION + 600*TENANT_PRIORITY

    • »
      »
      »
      18 months ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      Good to know, thanks for sharing. I had a multiple single-policy solutions scoring in that range. And the last one which gave me ~12k on the preliminary data and was my final solution. So disappointed that I discarded idea of trying multiple policies simultaneously :(

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

        Yeah. I switched to multiple policies in the last 2 days and got close to 14k, in time to get top 60 happily, but I wish I did it sooner. Spent too much time insisting and researching on state-of-the-arts algorithms...

        • »
          »
          »
          »
          »
          18 months ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          Spent too much time insisting and researching on state-of-the-arts algorithms...

          Same here. I'm reassuring myself that at least I learned something new that way...

  • »
    »
    18 months ago, # ^ |
    Rev. 2   Vote: I like it +8 Vote: I do not like it

    11800 without using parallel LRU, 12500 with.

»
18 months ago, # |
  Vote: I like it +53 Vote: I do not like it

Any info on how to recieve prizes?

  • »
    »
    18 months ago, # ^ |
      Vote: I like it +10 Vote: I do not like it

    Have you received any info since your question? I'm also waiting for Huawei to contact.

    • »
      »
      »
      18 months ago, # ^ |
        Vote: I like it +34 Vote: I do not like it

      Still no info. ICPCNews HuaweiChallenge can you help?

      • »
        »
        »
        »
        18 months ago, # ^ |
          Vote: I like it +12 Vote: I do not like it

        Dear participant, We are waiting participant list from Codeforce platform. As soon as we receive the list, we will contact you immediately. Thank you for your understanding!

        • »
          »
          »
          »
          »
          18 months ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          Dear Huawei I'm not quite sure which list you have in mind.? Would this one work for you: https://mirror.codeforces.com/contest/1813/standings ?)

          • »
            »
            »
            »
            »
            »
            18 months ago, # ^ |
              Vote: I like it +11 Vote: I do not like it

            They probably mean an "internal" list with more information that is not necessarily public, such as email address so they can reach out to us.

        • »
          »
          »
          »
          »
          18 months ago, # ^ |
            Vote: I like it +26 Vote: I do not like it

          MikeMirzayanov, can you please tell how long the wait is?

        • »
          »
          »
          »
          »
          18 months ago, # ^ |
          Rev. 2   Vote: I like it +32 Vote: I do not like it

          I didn't participate in the contest, but I think the participants are very modest to ask for it themselves:) Dear MikeMirzayanov, I think you forgot to send the e-mails plate to Huawei. I think all participants are very grateful to you for organising such a contest, which was obviously not easy to organise. Please send them the details, my friend is very worried :) Thank you for everything Mike, have a nice day!

      • »
        »
        »
        »
        18 months ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        I received an email regarding the reception of the prize yesterday. Apparently they finally received the list from Codeforces.

        • »
          »
          »
          »
          »
          18 months ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          I didn't :(

          I hope I haven't messed up anything (ō_ō)

        • »
          »
          »
          »
          »
          17 months ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          Did the letter say only about the T-shirt?

»
17 months ago, # |
  Vote: I like it 0 Vote: I do not like it

When will the t-shirts be shipped?

»
14 months ago, # |
  Vote: I like it 0 Vote: I do not like it

I have received a phone call asking for money for custom clarence. Is it required to provide any fee for the t-shirt?
I'm from Bangladesh.

»
12 months ago, # |
  Vote: I like it 0 Vote: I do not like it

I guess it's enough time passed to ask what's up with my T-Shirt and when I will receive it?
CC: ICPCNews HuaweiChallenge