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

Автор ConstructorU, история, 3 месяца назад, По-русски

Greetings Codeforces community!

CU

We are excited to announce the Constructor Open Cup 2024, our annual online programming competition organized by Constructor University and JetBrains.

What is the Constructor Open Cup 2023?

Constructor Open Cup is an online contest organized by Constructor University and JetBrains, the global leading tool provider for developers, to promote interest in computer science, data science, software development, and software engineering.

Put your knowledge and skills to the test in this 4-hour competition and stand a chance to walk away with a scholarship for a bachelor's degree in Software, Data and Technology (BSc SDT) at Constructor University, Germany’s #1 private university*!

Constructor Open Cup timetable

February 1-7, 2024 | Practice Round

Get familiar with the testing environment during this practice round.

February 8, 2024 at 2 PM (UTC) |Main Round

You will have 4 hours to complete a series of algorithmic programming tasks. Registration closes 1 hour before the start of the contest.

Prizes and Winner Announcement

The top candidates will receive exciting prizes, including:

  • chance to get scholarships for the BSc SDT*
  • exciting memorable gifts from Constructor University and JetBrains
Register now!

*The winners who applied to the BSc SDT will receive an email to schedule the interview with Constructor University and JetBrains.

What do participants say?

“I was just surfing Codeforces blogs when I found a post about the Constructor Open Cup 2023. After discovering that I could have a chance to win a scholarship from JetBrains, I registered for the competition and placed among the top 20-30. The contest itself was very interesting, with different types of problems that allowed me to showcase my knowledge. I felt very honoured to receive a scholarship, and now I am one of the students in the BSc SDT program” – IMRUN, BSc SDT first-year student.

How can I participate?

  • Register your details on the webpage.
  • Finalize your registration at Codeforces using the link you receive in the confirmation email.
  • If you have any further queries, please reach out to [email protected].

Can I participate?

Everyone is welcome! The contest is open for all ages and skill levels, all you need is a passion for coding.

To get the chance for the scholarship for BSc SDT, please check Constructor University’s eligibility requirements.

About the BSc SDT program

This program prepares talents to become tomorrow’s elites in software development, programming languages, data analysis, and machine learning. You will benefit from the latest insights and knowledge from top industry partners and get the right skills needed for these rapidly changing industries. Learn more about the program here.

About Constructor University

Founded in 2001 as a private, English-language campus university, it repeatedly achieves top results in national and international university rankings. Constructor University aims to transcend the traditional academic approach by combining educational fundamentals with project-based pedagogy and the latest in digital tools. It equips the young professional elites with the right skills and knowledge to address today's challenges and thrive in the job market.

About JetBrains

JetBrains is a global software company that creates professional software development tools and advanced collaboration solutions trusted by more than 15 million users worldwide. Since 2000, we have built a product catalogue that covers all stages of the software development cycle, major technologies, programming languages, and educational processes.

The product range includes award-winning tools, such as IntelliJ IDEA, PyCharm, ReSharper, and PhpStorm, and productivity-enhancing team tools like YouTrack, TeamCity, and Datalore. JetBrains is the creator of Kotlin, the officially preferred language for Android™ development.

For more information, please visit the webpage.

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

»
3 месяца назад, # |
Rev. 2   Проголосовать: нравится +8 Проголосовать: не нравится

The prices are really great and well thought.

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

Link for practice round??

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

    As soon as you register through the Constructor Open Cup website, you will get an email with the Open Cup Codeforces page; please register there with the same email.

    Practice round tasks will be available starting from February 1. Good luck! Looking forward to seeing you among the participants.

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

Is the codeforces round open to all or only for those registered on the website?

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

I think there was no settings to change the password, it was very inconvenient to type a random password every time.

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

is this competition available to me if I'm from Russia?

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

    It's Open Cup and everyone is welcome! The contest is open for all ages and skill levels. All you need is a passion for coding.

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

As one of the participants from the previous year, who had won the scholarship, I strongly recommend you to participate in this contest regardless you plan to study at the university or not. The tasks from this contest (it was earlier named as SIT Contest, actually such contests are held annually) are of high quality and will enforce your knowledge of competitive programming.

»
3 месяца назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
»
3 месяца назад, # |
  Проголосовать: нравится -13 Проголосовать: не нравится

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

I was wondering if there is any way to get access and upsolve the problemsets of the Practice & Final Round of last year's Open Cup ?

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

Is this contest IOI-style or CF-style?

»
3 месяца назад, # |
  Проголосовать: нравится -14 Проголосовать: не нравится

I have to do this competition during school

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

забиваю рекорд по вкладам , вставьте дизы :_)

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

Nice problems in practice round.

I've already done them, and they are interesting.

Looking forward to participating in the main round.

Hope the problems can be a little harder than the practice round.

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

Is there any master's scholarship?

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

    Through the Constructor Open Cup 2024, it's possible to get a chance to receive scholarships for the BSc Software Data and Technology. More details can be found at this link.

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

      but I am in my final year in b.tech (computer science and engineering), why the hell would I do bsc, if there is any option for scholarships in msc reply me, I couldn't find it in site

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

        There are scholarships for Master's programs here. You can put your successful participation in the Constructor Open Cup in your CV when applying, but please note that through the Open Cup, it's not possible to get a full scholarship for the master's program, as it's done for the BSc SDT program.

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

Can someone give me a hand with problem L in the practice round? Here's what I've tried: (if you can please give me a hint or a different approach)

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

    I haven't solved it either, but I was able to generate the answer up to n = 6.

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

Could someone give me a hint with K. Forum.

I've tried reversely iterating through the appended elements.

Got a TLE at test 13. I've used an array of length 2*10^5.

I'm thinking of priority queue or a BST with DFS.

Can someone help me with this problem ?

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

Thanks for contest! I am feeling that my perfomance is like green on cf. $$$H$$$ is interesing(solved), $$$I$$$ — i have no idea. $$$K$$$ if intended solution is not $$$O(n \cdot divisors(n))$$$, the task is not bad. If the intended solution is $$$O(n \cdot divisors(n))$$$ — time limit is too tight and annoying(mine solution with this asymptotics is $$$TLE$$$). In any case thanks for contest! The problems were quite interesting!

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

    I passed K with $$$O(n \cdot d(n) \cdot log)$$$

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

      It's interesing, maybe i am just weak in implementation :)

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

    TBH my $$$O(n d(n) \log n)$$$ was killed in K, so I remove $$$\log$$$ (sort -> handwritten unordered_map with hash) and got AC

  • »
    »
    3 месяца назад, # ^ |
    Rev. 2   Проголосовать: нравится +16 Проголосовать: не нравится
    Problem I - hint
  • »
    »
    3 месяца назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Can you please share your solution for H?

    Mine was counting number of ways with less than or equal $$$K$$$ operations (and then find exact number by subtracting).

    For solving it I use $$$dp[n][k][x]$$$. Let the last number be $$$x$$$ and the second last number be $$$y$$$ now if $$$x > y$$$ then we must make $$$x - y$$$ new operations and otherwise the number of operations doesn't increase.

    But it gets WA!?

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

      Let $$$a_1, ..., a_n$$$ be an array of non-negative numbers. Lemma: Such an array can be obtained using $$$k$$$ operations if and only if $$$|a_1| + |a_2 - a_1| + ... + |a_n - a_{n - 1}| + |a_n| \leq 2k$$$ and $$$a_1 + ... + a_n \geq k$$$ and $$$max(a_i) \leq k$$$. Let's skip the proof. Note that if $$$a_1 + ... + a_n < k$$$ then the first condition is exactly true. So we only need to count the number of arrays with the condition $$$|a_1| + |a_2 - a_1| + ... + |a_n - a_{n - 1}| + |a_n| \leq 2k$$$, and then subtract the number of arrays with the condition $$$a_1 + ... + a_n < k$$$. The last is exactly Stars and bars. The first condition can be calculated by dynamic programming. ($$$dp[n][sumOfDifferences][last]$$$). My solution is $$$O(n^4)$$$, but it is quite fast($$$300 ms$$$ on max test). I think someone has even $$$O(n^3)$$$

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

Is there a way we could submit solutions in practice mode?

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

How to solve G and H

  • »
    »
    3 месяца назад, # ^ |
    Rev. 3   Проголосовать: нравится +16 Проголосовать: не нравится
    G
  • »
    »
    3 месяца назад, # ^ |
    Rev. 2   Проголосовать: нравится +16 Проголосовать: не нравится
    H
    • »
      »
      »
      3 месяца назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      How do you compute all the arrays with sum less than $$$k$$$ to exclude from the dp?

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

        You can have DP[sum], and when traversing n, you will traverse possible sum and the value that you would put at this index. In short, you update DP_NEW[possible_sum+value] += DP[possible_sum]. In the end, you are interested in sum(DP[0]...DP[[k-1])

      • »
        »
        »
        »
        3 месяца назад, # ^ |
        Rev. 5   Проголосовать: нравится -7 Проголосовать: не нравится

        [Deleted]

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

          use some formula (I don't know its name right now if anyone knows it comment below)

          This is called "hockey stick identity" (because if you highlight the corresponding elements in the Pascal triangle it will look like a hockey stick), and there is a slight modification of your argument that gives the single binomial coefficient, namely: let's say we put $$$n$$$ splitters between $$$(k-1)$$$ balls. Then $$$a_1$$$ is the number of balls before the first splitter, $$$a_2$$$ is the number of balls between splitters $$$1$$$ and $$$2$$$, and so on, $$$a_n$$$ would be the number of balls between splitters $$$(n-1)$$$ and $$$n$$$, and all other balls (probably zero) go nowhere (because we are allowed to have less than $$$k-1$$$ balls).

          Or we could just convert the system $$$a_1 + \ldots + a_n \leq k-1$$$ with $$$a_i \geq 0$$$ into the system $$$a_0 + a_1 + \ldots + a_n = k - 1$$$, $$$a_i\geq 0$$$, and you have already explained how to count the solutions.

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

      Ah I see. Thanks everyone. I think I missed the observation where an array will use $$$< k$$$ segments only when the sum is less than $$$k$$$

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

I can't solve K、L, when the Tutorial ~

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

Great! I am doing practice round

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

When the results will be published?

»
3 месяца назад, # |
Rev. 2   Проголосовать: нравится +23 Проголосовать: не нравится

The editorial is available here.

Model solutions
»
3 месяца назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

What was the solution for problem L. Roads from the Practice Round? I never could figure that one out.

  • »
    »
    3 месяца назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    Hint 1
    Hint 2
    Hint 3
    Hint 4
    Hint 5