Please subscribe to the official Codeforces channel in Telegram via the link: https://t.me/codeforces_official. ×

By PikMike, history, 2 weeks ago, translation, In English,

On Nov/28/2018 17:35 (Moscow time) Educational Codeforces Round 55 (Rated for Div. 2) will start.

Series of Educational Rounds continue being held as Harbour.Space University initiative! You can read the details about the cooperation between Harbour.Space University and Codeforces in the blog post.

This round will be rated for the participants with rating lower than 2100. It will be held on extented ACM ICPC rules. The penalty for each incorrect submission until the submission with a full solution is 10 minutes. After the end of the contest you will have 12 hours to hack any solution you want. You will have access to copy any solution and test it locally.

You will be given 7 problems and 2 hours to solve them.

The problems were invented and prepared by Mike MikeMirzayanov Mirzayanov, Roman Ajosteen Glazov, Adilbek adedalic Dalabaev, Vladimir Vovuh Petrov, Ivan BledDest Androsov and me.

Good luck to all participants!

Our friends at Harbour.Space also have a message for you:

Hello Codeforces!

We are excited to announce that the Hello Muscat Programming Bootcamp registration is open! The camp will take place from March 9th to March 15th, 2019, and our early bird discount of 15% is going until December 15th!

This next edition in our Hello Programming Bootcamp will run in parallel with the traditional Moscow ICPC Workshop — both Bootcamps’ contests will be identical, and contestants will be able to see their position in the General Leaderboard. Every day, both camps will be competing simultaneously, 4,000 kilometers from each other!

REGISTER FOR THE BOOTCAMP

We would also like to remind you that the deadline for applying to the Master’s in Robotics programme scholarship will close November 30th, so we encourage you to check out the website to see the all the requirements and apply!

APPLY HERE

UPD: You can discuss the problems after the contest at a local Discord server.

UPD2:

Congratulations to the winners:

Rank Competitor Problems Solved Penalty
1 I_love_Tanya_Romanova 7 157
2 theodor.moroianu 7 330
3 halyavin 7 361
4 Radewoosh 6 158
5 palayutm2001 6 190

Congratulations to the best hackers:

Rank Competitor Hack Count
1 halyavin 131:-8
2 zdw1999 55:-4
3 Marcosk 42:-1
4 ismagilov.code 64:-48
5 garipov.roma 48:-24

1354 successful hacks and 1065 unsuccessful hacks were made in total!

And finally people who were the first to solve each problem:

Problem Competitor Penalty
A I_love_Tanya_Romanova 0:02
B Dalgerok 0:04
C I_love_Tanya_Romanova 0:08
D hitman623 0:15
E lqs2015 0:11
F ko_osaga 0:47
G RomaWhite 0:08

UPD3: Editorial is out

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

»
2 weeks ago, # |
  Vote: I like it -37 Vote: I do not like it

Yoo!! Another contest by PikMike

»
2 weeks ago, # |
  Vote: I like it +62 Vote: I do not like it

Yoo!! Another comment by HARRYPOTTER0

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

It's been so long since MikeMirzayanov appeared as a problem setter(except div. 3) :)

  • »
    »
    2 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    except for div.3, yeah! :)

  • »
    »
    2 weeks ago, # ^ |
      Vote: I like it +40 Vote: I do not like it

    Mike was problemsetter at Mail.Ru round 3, which was on Sunday.

    Idk if 3 days are so long

    • »
      »
      »
      2 weeks ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      Oh, I missed that. Then it's a long time before Mail.Ru round 3.

    • »
      »
      »
      2 weeks ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      I apologise, I missed that too. Good luck for the contest!

»
2 weeks ago, # |
  Vote: I like it +37 Vote: I do not like it

Can something be done please to avoid clashing with the SRM?

»
2 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

Good

»
2 weeks ago, # |
  Vote: I like it +30 Vote: I do not like it

(int) Round 55 Div. 2 = 28 November :D

»
2 weeks ago, # |
  Vote: I like it -24 Vote: I do not like it

We haven't seen div3 for long time.

»
2 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

Everytime I said "Hope we all have a good rank and I want to become expert"then got a bad rank,so I say hope everyone enjoy this contest this time :D

»
2 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

Yoo!! Another contest by Pik Mike How To lomk Him ? we Didint have Div3 For Long Time And Is It Rated ? that isn’t something to be happy about

»
2 weeks ago, # |
  Vote: I like it +30 Vote: I do not like it

Clashes with Carlsen vs Caruana tie-break

»
2 weeks ago, # |
  Vote: I like it +5 Vote: I do not like it

Auto comment: topic has been updated by PikMike (previous revision, new revision, compare).

»
2 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

challenging problems are today.

»
2 weeks ago, # |
  Vote: I like it +5 Vote: I do not like it

How to solve G??

  • »
    »
    2 weeks ago, # ^ |
    Rev. 2   Vote: I like it +21 Vote: I do not like it

    Make a flow network and represent each edge as a vertex. Connect each "edge" to the source with capcacity the weight of the edge. Connect every vertex V of the graph to the sink with capacity a[V]. Finally connect each "edge" with the 2 vertices it connects with capacity Infinity. The answer is sum of weights of all edges — min cut in this network.

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

      Can someone elaborate why this works and what's the intuition behind it?

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

        Think of it like this. Initially we have taken all "edges" to form our subgraph. If we cut an edge connecting source to "edge" it means we don't take the "edge" in our subgraph, similarly if we cut an edge from vertex to sink we don't take the vertex in our subgraph. If an edge is present in our subgraph then the 2 vertices it connects must be in our subgraph too. If an edge is not present in our subgraph then atleast 1 of the 2 vertices it connects must be out of our subgraph. In this network any cut will fullfill these rules(try to see why this is true) and to maximize the answer we just need to find the min-cut.

      • »
        »
        »
        »
        2 weeks ago, # ^ |
          Vote: I like it +29 Vote: I do not like it

        I can help you with that :P. In fact, the book "Algorithm Design" by Jon Kleinberg, Eva Tardos can be truly revealing about that.

        Go to page 396(Chapter 7 Network Flow). This problem is known in the literature as "Project Selection". Enjoy.

        PD: The book i pointed to you is amazing, there are other non straight forward applications. My suggestion: Read other chapters as well.

»
2 weeks ago, # |
  Vote: I like it +7 Vote: I do not like it

halyavin is here.

»
2 weeks ago, # |
  Vote: I like it +3 Vote: I do not like it

that's not fair I actually wasted 15 min on A because i cant understand the second test case until the Global announcement.... maybe I would have solved C I'm just putting final touches on my solution

»
2 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

Really good contest, tricky A though :D

Can anyone share their approach for G? I saw G started getting accepted solutions much before E and F started getting accepted.

  • »
    »
    2 weeks ago, # ^ |
      Vote: I like it +23 Vote: I do not like it

    Make a flow network and represent each edge as a vertex. Connect each "edge" to the source with capcacity the weight of the edge. Connect every vertex V of the graph to the sink with capacity a[V]. Finally connect each "edge" with the 2 vertices it connects with capacity Infinity. The answer is sum of weights of all edges — min cut in this network.

  • »
    »
    2 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    yeah tricky with false test explaining

»
2 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

Is Dinic's algorithm enough for Problem G? It seems that the complexity is something like O(n3).

By the way, I got accepted with Dinic's after I got accepted with Ford-Fulkerson. Would someone tell me which submission the system will use to judge?

  • »
    »
    2 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    The last submission will be judged

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

    If the first passes it will be considered. Else the second

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

    The earliest submitted solution to get AC on systests will be considered.

    • »
      »
      »
      2 weeks ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      That's sounds reasonable. Moreover, if the first one failed the systests while the second one passed, will I get penalty for the first one?

    • »
      »
      »
      2 weeks ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      That's odd though. On "normal" codeforces rounds, only the LAST submission to pass the pretests in judged on systests and that one submission will matter towards your score.

      How come it's different for "educational" rounds?

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

        Educational system is a modification to icpc system, not the cf one. Over there all the submissions after AC don't count, the same is here.

»
2 weeks ago, # |
  Vote: I like it +10 Vote: I do not like it

How to solve D?

  • »
    »
    2 weeks ago, # ^ |
      Vote: I like it +6 Vote: I do not like it

    Fix the two vertices with lowest a as the ends of the diameter. Put all vertices with a >= 2 between them. Then check if you can put the remaining vertices (they have degree 1) on them.

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

    First, if sum(a)<2*(n-1) then you can't build a connected graph at all. Otherwise you need to build a tree that is maximally close to just a path. My approach was like this: first, build a path from vertices with degree 2+, then add a vertex with degree 1 (if there are any) to the first and last vertices of that path. Add other leaves anywhere respecting degree constraints.

»
2 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

Will I get a penalty if I hack unsuccessfully?

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

    No.

    • »
      »
      »
      2 weeks ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      And what if I hack successfully? Will I get a extra bonus or only the one who is hacked will lose his "accepted"?

      • »
        »
        »
        »
        2 weeks ago, # ^ |
          Vote: I like it +6 Vote: I do not like it

        You can indirectly get an extra bonus: if you hack someone that is higher than you in standings and he falls below you, you get a better position in final standings and a bit more rank.

        • »
          »
          »
          »
          »
          2 weeks ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          Many thanks~ However, I think I should go to bed now because it is already 1: 30 in China now...

        • »
          »
          »
          »
          »
          2 weeks ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          Would that really matter though? There will be system test to eliminate those wrong answers if nobody hacked them anyway right?

          • »
            »
            »
            »
            »
            »
            2 weeks ago, # ^ |
              Vote: I like it 0 Vote: I do not like it

            In Educational rounds the systest consists of the hack inputs used during the open hacking phase. If the input needed to hack the code is very specific, it's possible that it passes the other hacking inputs and thus the systests.

            • »
              »
              »
              »
              »
              »
              »
              2 weeks ago, # ^ |
                Vote: I like it 0 Vote: I do not like it

              I'm still sort of confused about the Educational rounds. Will there be a system test phase after the open hacking phase? Or the contest just finishes once the open hacking phase finishes?

            • »
              »
              »
              »
              »
              »
              »
              2 weeks ago, # ^ |
                Vote: I like it 0 Vote: I do not like it

              I see, that makes a lot of sense!

    • »
      »
      »
      2 weeks ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      thanks~

»
2 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

could anyone please tell me what is this hell -> Diagnostics detected issues [cpp.clang++-diagnose]? only due to this i could not submit my B problem. although my code is working fine on my system.

»
2 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

how to solve C??

»
2 weeks ago, # |
  Vote: I like it +1 Vote: I do not like it

f1e1de2f61dd0f3d85883b478bf0f57f353e0ea7
May God save me.

»
2 weeks ago, # |
  Vote: I like it -17 Vote: I do not like it

HELP ME PLS!!!

PROBLEM E

This submission 46340090 Wrong answer on test 11,

but on any other compiler 11 test — ok (and on my local machine).

I do not understand why and I think that the problem is in the cf compiler,

help pls.

//11 test//

input:

18 1

3 3 1 3 1 1 3 4 2 2 2 1 2 1 4 1 4 3

ans:

9

»
2 weeks ago, # |
  Vote: I like it +3 Vote: I do not like it

Can anyone tell me why this code has been blowing up with undefined behaviour on Codefroces servers ?. It works fine on my machine and ideone.com . My Submission

»
2 weeks ago, # |
  Vote: I like it -16 Vote: I do not like it

Another HackerForces contest!!!

»
2 weeks ago, # |
  Vote: I like it -18 Vote: I do not like it

Hello! idk if this is intended but I found out I could submit for practice before contest ended, this seemed really cool however when I get wrong answer I can see the test data!!! which means I can hack any code I want that gives Wrong Answer, is this the intention for the educational CF?

»
2 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

46340916

Why does Binarysearch WA for C?

»
2 weeks ago, # |
  Vote: I like it +3 Vote: I do not like it

For problem C I wrote code in c++ in ideone it ran for sample test cases well.But on submitting it is giving runtime error with "Exit Code is -1073741819" for the very first test case I don't know what the exit code means? Can anyone explain why and when that exit code occurs?

»
2 weeks ago, # |
Rev. 2   Vote: I like it +1 Vote: I do not like it

finally I still can't hack this 1965ms O(n^2) 46324307

50000*50000 just cost 2s.. amazing...

but I hacked another solution with java : 46336111

but in fact this solution's time cost is about 2400ms

so this tells us drop java and pick c++ now

just joking XD

»
2 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

Shit just got real...System testing is just lit this time...

»
2 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

Intended solution for F? I can only bound my solution with , where S is the sum of lengths of all strings (that also may be slightly wrong, to the better or worse), but the constant is incredibly low and I can't come up with a worstcase. It passed with 233ms or so.

  • »
    »
    2 weeks ago, # ^ |
    Rev. 2   Vote: I like it +38 Vote: I do not like it

    (I will use N to denote size of a trie)

    Don't know about intended; I did following DP: [subtree that we have to solve (N)][Depth of the first taken vertex on path from subtree root to the overall root(N)][how many vertices do we want to take in this subtree(K)]. So I have N * N * K states, and in order to solve the state I'm running knapsack over all sons of the vertex. Adding up those knapsacks for all vertices, we'll get N * K * K over whole tree (each vertex is a son of exactly one other vertex, and it will be considered in K * K possible transitions in knapsack), plus we have to run it N * K times for all possible combinations on two other dimensions of DP, which leads to the bound of N2 * K3 with a really low constant.

»
2 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

hi there i have a problem. recently, i got a message that said your round is going to be skipped. bu at the end, it said that if you think there is a problem, you can send a message here. i was getting +98 from this contest, so i think there was no reason to skip this round by my self. thanks.

»
2 weeks ago, # |
  Vote: I like it +26 Vote: I do not like it

When will tutorial be available?

»
2 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by PikMike (previous revision, new revision, compare).

»
2 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

python 6-lines AC solution to problem B

_, string = raw_input(), raw_input()
start, end, res = 0, 0, 0
for char in string:
    if char == "G": start += 1
    else: end, start = start, 0
    res = max(res, start + end + 1)
print min(res, string.count("G"))

https://codeforces.com/blog/entry/60059 for more

  • »
    »
    9 days ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    LooOoLOoOoOooOoLoooOooOoOL. LMAO. ROFL. Might as well don't post your solution here if you are going to post code without any explanation.

»
9 days ago, # |
  Vote: I like it 0 Vote: I do not like it

I tried to solve problem C with Binary Search but failed.. whats wrong with my algorithm? thx :)

here is my submission 46606310

»
7 days ago, # |
  Vote: I like it 0 Vote: I do not like it

Someone please help me with problem C. I couldn't understand the problem.

»
3 days ago, # |
  Vote: I like it 0 Vote: I do not like it

for the same code once gave wa on test case 8 and next time gave runtime error on test case 1? whats the problem with the online judge?