Блог пользователя eatmore

Автор eatmore, история, 6 лет назад, По-английски

Google Code Jam 2019 Qualification Round will start on April 5 at 23:00 UTC and last for 27 hours. Here is the official announcement:

Hi everyone,

Code Jam is back for its 16th year, kicking off with the Qualification Round in one week! We're excited to provide you with another season of intriguing problems (including some interactive ones) and a refreshed user experience. Register today for a chance to earn the coveted title of Code Jam Champion at the World Finals in San Francisco, California, and take home the grand prize of $15,000.

Here’s what you need to know about this year’s competition:

  • The 27-hour Online Qualification Round begins on Friday, April 5 @ 23:00 UTC; registration will be open from now until the round ends.
  • Registration is now a two-part process: first, you'll create a coding competitions profile, then you'll be prompted to complete registration for Code Jam specifically. Make sure you complete both steps and lookout for a registration confirmation in the "Alerts" section of our site.
  • We hope you enjoy new and familiar features alike such as "ask a question," testing your solution on our servers, and receiving a participation certificate. You'll receive a certificate after the last round you participate in (so long as you make at least one competitive attempt during the Qualification Round.).
  • The top 1,000 contestants in Round 2 win a limited edition Code Jam t-shirt.
  • You can start warming up with previous Code Jam problems.

Visit g.co/codejam to register and review the updated Code Jam FAQs, Rules and Terms. See you on the scoreboard!

P.S. Spread the word about #CodeJam with these resources: Code Jam video, 2019 flyer and a Google Keyword blog post.

And another one:

Reminder: the 2019 Code Jam Qualification Round begins later today. We have a few exciting updates and helpful reminders to share:

  • We've made several updates to our FAQ, and are proud to offer 20 additional languages this season! Please review all of the FAQ sections before the round — especially "Competing," "Coding," and "Interactive Problems", which contain important details about supported languages, updated tools and testing on our servers

  • The round will be open for 27 hours, starting April 5 at 23:00 UTC and ending April 7 at 2:00 UTC. You can spend as much or as little of the 27 hours competing as you would like, but you must attain a final score of at least 30 points to move on to Code Jam’s Round 1. If you're a new competitor who is comfortable with programming, the odds are good that you will be able to earn enough points to advance within a few hours.

  • You can prepare by: working through past problems, reviewing the Code Jam FAQ & Rules and Terms. If you have questions during the round, use the "Ask a Question" feature in the competition interface. If you can't find an answer in the FAQ or Rules, reach out to codejam@google.com.

Good luck!

The Code Jam Team

This year, Code Jam has a new competition interface. To register for Code Jam, you will have to first create a profile in the new system (even if you participated in the previous years), and then to register for the Code Jam itself.

Also, the list of supported languages was significantly expanded. The supported languages are: Bash, C, C++, C#, Clojure, Dart, F#, Go, Groovy, Haskell, Java, JavaScript, Julia, Kotlin, Lisp, Lua, Objective-C, OCaml, Octave, Pascal, Perl, PHP, Python 2, Python 3, PyPy 2, R, Ruby, Rust, Scala, Swift, TypeScript, and Visual Basic.

You may want to read some useful posts about Code Jam:

Good luck & have fun!

  • Проголосовать: нравится
  • +80
  • Проголосовать: не нравится

»
6 лет назад, # |
  Проголосовать: нравится +7 Проголосовать: не нравится

Do I understand correctly that solving the samples of A and B is enough to qualify?

  • »
    »
    6 лет назад, # ^ |
    Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

    Since 6+10+5+9=30, and since "Contestants with at least 30 points at the end of this round will advance to Round 1." then yes, I think so :)

    EDIT: I had misread sample as visible test cases, so my comment was completely wrong. Apologies. :(

  • »
    »
    6 лет назад, # ^ |
      Проголосовать: нравится +28 Проголосовать: не нравится

    No.

    As stated in Code Jam Rule:

    4.3 Judging and Scoring.
    ...
    "Visible Test Sets" are test sets for which the outcome of judging will be reported during a Round.
    

    Visible test set can contain testcases other than sample.

    It's enough to qualify after solving visible test sets for problem A and B.

»
6 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

How to solve D2?

  • »
    »
    6 лет назад, # ^ |
      Проголосовать: нравится +13 Проголосовать: не нравится

    Read the editorial.

  • »
    »
    6 лет назад, # ^ |
      Проголосовать: нравится +65 Проголосовать: не нравится

    Here's my solution:

    The key idea I used was to think of the queries as sending $$$N$$$ $$$F$$$-bit numbers rather than $$$F$$$ $$$N$$$-bit strings. So, for example if you sent the following $$$3$$$ queries:

    $$$1010$$$

    $$$0100$$$

    $$$1101$$$

    Think of it like you are sending $$$4$$$ numbers, $$$5$$$, $$$6$$$, $$$1$$$, $$$4$$$ in that order. Here each number is represented by a vertical column, where the $$$i$$$th row determines the bit in the number $$$i$$$th from the right. So, first row corresponds to $$$2^{0}$$$, second row corresponds to $$$2^{1}$$$ and so on. Read the judge's response in the same way.

    This makes the solution for $$$F = 10$$$ quite simple, as now you can send $$$N$$$ $$$F$$$-bit numbers, you just make each worker output its ID, that is, output $$$0$$$, $$$1$$$, $$$\ldots$$$, $$$1023$$$ in that order. Now, the judge will return some $$$N-B$$$ among these numbers and you just output the $$$B$$$ missing numbers as the answer.

    Now, notice you haven't used $$$2$$$ details yet: 1. The numbers returned are returned in the order they were given. 2. $$$B$$$ cannot be more than $$$15$$$.

    This allows us to let each worker output its ID modulo $$$16$$$ rather than the exact ID. So, your output looks like:

    $$$0$$$, $$$1$$$, $$$\ldots$$$, $$$15$$$, $$$0$$$, $$$1$$$, $$$\ldots$$$

    And the judge will return these numbers in the same order with atmost $$$15$$$ numbers missing. Now, notice each group of $$$0$$$, $$$1$$$, $$$\ldots$$$, $$$15$$$ contains $$$16$$$ numbers, so no group can go completely missing. So, in the returned numbers, if a number is less than or equal to the number before it, that means a we are in the next group. In this way, we can uniquely determine the ID's of the workers returned and thus output the ID's of the remaining workers. As, we output only $$$4$$$-bit numbers, we can solve this with $$$F = 4$$$.

    Implementation

  • »
    »
    6 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится +11 Проголосовать: не нравится

    Bonus: it's possible to solve D2 with $$$F = 4$$$.

    (AwakeAnay have really nice solution, my idea is way more complicated)

    • »
      »
      »
      6 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

      Yeah, to make sure the solution worked fine I submitted one attempt with a fixed F = 4.

      IMO, the "Hidden" test set wasn't that hidden — you simply had to make a submission with a fixed F (rather than the value sent by the judge) and emulate either the Visible or the Hidden set.

      But that was a great problem, totally loved it.

»
6 лет назад, # |
  Проголосовать: нравится +16 Проголосовать: не нравится

Why the platform doesn't show the error message for samples? I got RTE for python3 without knowing a reason while my code runs em well on codeforces custom and ideone.com T_T

»
6 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Is the stack limit with G++ specified anywhere ?

»
6 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится

I think there is a editorial of the qualification round but i am not able to found in google code jam website. Does anyone know where to find it?

»
6 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится

Can someone explain how to use the sample grader on problem D?

»
6 лет назад, # |
  Проголосовать: нравится +22 Проголосовать: не нравится

Did anyone try to parse the new website and get statistics?

  • »
    »
    6 лет назад, # ^ |
      Проголосовать: нравится +24 Проголосовать: не нравится

    Here is a scoreboard parser: gcj-2018-scoreboard-api It's a node application. Works pretty good for my usage.

    • »
      »
      »
      6 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      What different commands are there to retrive more details like name of participants of a country etc. or it shows only no of participants statistics of a country ?

      • »
        »
        »
        »
        6 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        For each participants it shows you the rank, name, country, points, times, and which problems and test cases were solved. Either for a country or for everybody.

    • »
      »
      »
      6 лет назад, # ^ |
        Проголосовать: нравится +51 Проголосовать: не нравится

      Thank you!

      How should we run "node scoreboard contestID [country]"?

      (Sorry if the question is stupid — I'm gray at practical programming.)

      • »
        »
        »
        »
        6 лет назад, # ^ |
          Проголосовать: нравится +28 Проголосовать: не нравится

        You need to install node somehow. E.g. with apt install nodejs or pacman -S nodejs under common Linux distributions. It will also run on other OSes, but I cannot help in that regard.

        Then download the program files (either with git clone https://github.com/nhho/gcj-2018-scoreboard-api.git or as a zip file from the website and extract it), navigate into that directory using your terminal, and execute the command with a valid contestId (listed in the Readme) and an optional country name, e.g. node scoreboard 0000000000051705 Japan. To do further processing of the data I suggest piping the output into a text file.

        • »
          »
          »
          »
          »
          6 лет назад, # ^ |
            Проголосовать: нравится -8 Проголосовать: не нравится

          A cross-platform alternative (also not suffering from outdated versions like apt often does) would be installing Anaconda, which is either terminal-based in Linux or with a separate command prompt. Then, conda install -c conda-forge nodejs is sufficient to install Node.

»
6 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится

Did anyone solve C2 using C++ ? If yes, please share the code..

»
6 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Is it no longer possible to see other contestants' codes in the new interface?

»
6 лет назад, # |
  Проголосовать: нравится +14 Проголосовать: не нравится

What are the DP flux algorithms?

»
6 лет назад, # |
  Проголосовать: нравится +53 Проголосовать: не нравится

Who cares about adding some Clojure, Dart, PHP and whatever if they can't give us usable site?

  • »
    »
    6 лет назад, # ^ |
      Проголосовать: нравится +7 Проголосовать: не нравится

    Well, it is not correct to say that they don't have a usable site.

    The last year's website was more or less fine, and the two years ago and below site was even better.

  • »
    »
    6 лет назад, # ^ |
      Проголосовать: нравится +32 Проголосовать: не нравится

    Nah. According to Pablo Heiber, whether a site is usable or not is subjective. Also, the Google UI people don't think usable sites are good for newcomers. /sarcasm

    I decided to just not participate. Distributed isn't there, interface changes are a pain and it simply isn't worth my time.

  • »
    »
    6 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Who cares about adding some Clojure, Dart, PHP and whatever

    *outdated versions of Clojure and PHP (not to mention C++14, Java 8, python 3.5, etc)

»
6 лет назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится

Is it possible to use Google CodeJam Old website?

We can submit Qualification round problems in there and see the counter for the next round.

»
6 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

UX is getting from bad to worse every year.