Codeforces Round #802 (Div. 2, based on All-Russian olympiad in the name of Keld...
source link: http://codeforces.com/blog/entry/103977
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
This Sunday will take place All-Russian olympiad for students of 5-8 grades, in the name of Keldysh. Good luck to all the participants! Olympiad is conducted under the guidance of the Moscow Olympiad Scientific Committee, in particular GlebsHP, ch_egor, Endagorion, vintage_Vlad_Makeev, Zlobober, meshanya, cdkrot, voidmax, grphil, fedoseev.timofey and, of course, Helen Andreeva.
We are happy to announce the Codeforces Round #802 based on the problems of this olympiad! It will be a Div. 2 round, which will take place at Sunday, June 19, 2022 at 09:05UTC. You might have already participated in rounds based on the school olympiads, prepared by Moscow Olympiad Scientific Committee (rounds 327, 342, 345, 376, 401, 433, 441, 466, 469, 507, 516, 541, 545, 567, 583, 594, 622, 626, 657, 680, 704, 707, 727, 751, 775). Please notice the unusual time.
The problems of this olympiad were prepared by Siberian, _overrated_, Igorbunov, Ziware, _tryhard, EntitledMonkey under the supervision of fedoseev.timofey.
Thanks to 74TrAkToR for their help in organizing the Codeforces version of this contest and one of the problems, MikeMirzayanov for the Codeforces and Polygon.
Also I would like to thank the Tinkoff company and personally Tatyana TKolinkova Kolinkova for great help with organizing the competition.
Thanks to NEAR for supporting this round, details can be found in this post.
Good luck!
UPD1: Thanks to Um_nik, mhq, MichsSS, kucipendik, TeaTime, devid, Mangooste for testing.
UPD2: Scoring distribution: 500 — 1000 — 1500 — 1750 — 2500 — 3000
25 hours ago, # | Round was announced less than 48 hours before the start time, very unusual |
25 hours ago, # | Is a 1500 difficulty problem A coming again ? https://codeforces.com/blog/entry/80214 this was true last time |
22 hours ago, # | why this based on All-Russian olympiad contest start unusual time |
-
I think because there's a contest (Lunchtime) on CodeChef at the usual time of CodeForces Rounds. Unusual timing for this round to avoid clashing contest times, so that people who want to participate in both can do so.
18 hours ago, # | Brace yourselves for hacks and fsts in this round. |
The comment is hidden because of too negative feedback, click here to view it |
17 hours ago, # | Good luck for everyone!!! |
17 hours ago, # | The comment is hidden because of too negative feedback, click here to view it |
-
please, avoid saying the word "r*saians" for all Ukrainians who’ve been killed during the war. please, transfer $2000 to my bank account, it will definitely save many innocent lives of Ukrainian civilians. maybe you didn’t know, but every cent from the rewards for rounds is directed straight to the russian army, and MikeMirzayanov has a Z tatoo on his neck.
-
The codeforces platform is not aiding Russia in the war.
People around the world are looking forward to the end of the war, but our daily contests will not be disrupted by it.
I hope that the number of people who are extremely hateful to Russia or Ukraine is getting smaller and smaller.
(If you want to help Ukraine, then you can donate some money to Ukraine instead of denigrating codeforces here)
-
orz orz big great BurningRaven I will participate in this round to support russia orz
15 hours ago, # | NOTICE THE UNSUAL TIMING. IT IS 5 HRS ANS 30 MIN PRIOR TO REGULAR TIMING |
8 hours ago, # | Then I can come to be rated by div.2 XD (I'm so like a rookie this week :( |
6 hours ago, # | points distribution? |
6 hours ago, # | Hope I would do well in this round, the last round went very badly for me. |
5 hours ago, # | You can do anything, just don't give up! |
4 hours ago, # | Why this post is not on the home page |
I hope to get div 2 type problem unlike in last round (codeforces round 657) which was organize by the same organization which was more like div 1 round. |
3 hours ago, # | the last Russian Olympiad mirror didn't have a score distribution announcement before the contest, looks like we are gonna have that again xD |
3 hours ago, # | i hope i can get top 10 in this contest |
3 hours ago, # | All the best everyone. |
3 hours ago, # | Why am I not able to participate? |
68 minutes ago, # | I think I'm not helping the nature |
51 minute(s) ago, # | Decent round, but B is really annoying :) |
-
big integer ?!
-
No, just make it '11111...' if the first char is '9' else make it '9999...'
-
can u look into my solution where i am wrong?https://codeforces.com/contest/1700/submission/161213454
-
-
Well, that is another reason why B is really bad, there's a bias for people who know python (and also who have configured IDE for it)
I was participating unrated so I didn't bother about it and solved on C++ with some pain but I can really imagine how would I rage about this task if it was rated for me
-
46 minutes ago, # | i don't know if its just my opinion but i think b would have been better swapped with c? i feel if i started with c i would have better chance to solve it b was very time consuming |
-
I am sure you had the solution sketch for B...it was mostly math..meanwhile in C people exploited the structure of the array. Indeed the implementation wasnt straight forward but imo it should not be swapped.
-
my reasoning is its easy to notice the observation for b but its hard to implement it ( at least for c++ users like me) in the opposite of c i got an idea after thinking in it for about 15 minutes but i didn't have time to test it because i spent most of my time in b but you have a fair point b wasn't that hard maybe im suck in implementation problems
-
46 minutes ago, # | Ok problem(s) |
45 minutes ago, # | What has to be done in C? I could hardly observe anything useful for the solution at all. |
-
a first condition to have all the elements equal to 00 is to have them all equal. Considering this, we take the ""derivative"" array (that is v′[i]=v[i]−v[i−1]v′[i]=v[i]−v[i−1]). Now, if v′[i]<0v′[i]<0, that means that v[i−1]v[i−1] is too big, so we need to decrease it. Assuming we have made all elements from i=1..i−1i=1..i−1 equal, we can decrease v[i−1]v[i−1] using the operation to decrease on prefix as many times as we need. It works simetrically for v′[i]>0v′[i]>0. Then, after all these operations, we find the minimum value and increase it (or decrease it ) to make all elements 00. Why is this optimal? Glad you asked. I do not know
-
You can equalize array with decrease operations and the adding like this
1 -2 3 -4 5 Substract 5 from (3, 4, 5) 1 -2 -2 -9 0 Substract 9 from (5) 1 -2 -2 -9 -9 Substract 7 from (1, 2, 3) -6 -9 -9 -9 -9 Substract 3 from (1) -9 -9 -9 -9 -9 Then just make it zero with adding 9 0 0 0 0 0
Then cost is 5 + 9 + 7 + 3 + 9 = 33
45 minutes ago, # | Very strange round. problem C is hard for its place and D is easy for its place. They have to be swapped |
45 minutes ago, # | can someone explain sol for Div2C to me please?? |
-
First observation is: if we can add 1 only to all of the numbers and other operations are only subtractions then we just need to equalize all the numbers by subtractions and then apply additions.
To equalize all numbers by subtraction on prefix/suffix we can use this way:
1) Suppose we have some prefix equal to x, and the next number is y.
2) If y > x then subtract suffix
3) Otherwise subtract prefix
We don't need the segment tree etc. because we can only store current prefix value and subtracted amount from current suffix
44 minutes ago, # | The quality of preparation is very good (understandable why), such a great contest. One of the best out of all recent ones on CF. |
43 minutes ago, # | approach for B? Anyone |
41 minute(s) ago, # | If only I had one minute more to submit D.. |
40 minutes ago, # | D is a good old algorithms&datastructures problem |
40 minutes ago, # | Problem F is similar to Coin Collecting from JOI 2019. |
40 minutes ago, # | Awesome D and E! |
39 minutes ago, # | what was pretest4 of D (ಥ _ʖಥ)(ಥ _ʖಥ) |
-
Take a look at Ticket 13034 from CF Stress for a counter example.
I am not sure if I made a bug for E but I would to confirm the correctness of my idea. A puzzle is solvable iff all cells except 1 have at least one neighbour smaller than it. Thus, we can find a 'bad' cell and attempt to try swapping its neighbours with every other cell (including itself) and check each scenario in O(1). |
-
You probably made a mistake while counting the valid swaps. For example, your code fails on Ticket 13031 from CF Stress.
When I spend 20 mins trying to come up with a solution, and see a solution like this for A which is literally the answer: This wretched solution :( That's when I start questioning my practice sets :( and infact my life choices lol |
37 minutes ago, # | IN B I iterate all over numbers from n.size to 10*n.size and check if number + m is good print it and return but i got WA on test 2 anyone can explain why? |
-
same here bro
-
If you know the reason please tell me
-
The length of a number is at most 100.000 when long long can fit around 19 characters if I am correct.
-
-
37 minutes ago, # | Somebody please tell what is wrong with my code?https://codeforces.com/contest/1700/submission/161195566 |
36 minutes ago, # | Why can you just go left to right in C, I was thinking some insane subarray decomp shit |
35 minutes ago, # | could solve only 1 |
34 minutes ago, # | Why is my solution to DD is giving TLE? Time complexity is nlogA+qlognnlogA+qlogn, where A is 109109. It should pass within the time limit. Am I doing something wrong? |
28 minutes ago, # | Please share your approach for C. :'( |
-
suppose i am at position ind and all elements from 0 to ind-1 are all equal to mn and have applied pref operation p times and suffix operation s times so cur value of my element is arr[i]-suf
if cur_val of element is greater than mn then i will use suffix operation to make it equal to mn if cur_val is less than mn then i will use pref operation to make all prefix from 0 to ind-1 equal cur_val .
after the we iterate over whole array then we will have all elements equal to mn then we will make mn equal to 0
-
Problem C
Make a new array bb such that b[i]=a[i]−a[i−1]b[i]=a[i]−a[i−1] and b[1]=a[1]b[1]=a[1]. Now apply operations on the given bb array, and see how much simpler it becomes!
Adding −1−1 to prefix [1,i][1,i] means decreasing b[1]b[1] by 11 and increasing b[i+1]b[i+1] by 11.
Adding −1−1 to suffix [i,n][i,n] means decreasing b[i]b[i] by 11.
Adding +1+1 to all numbers means increasing b[1]b[1] by 11.
You want to make b[i]=0b[i]=0 for all valid ii. Now the problem becomes easy and trivial.
24 minutes ago, # | Able to solve only problem A. I feel problem C was slightly confusing. |
21 minute(s) ago, # | Did anyone else use binary search in D? I binary searched on the minimum possible answer(k), checked if (max from 1 to k of (prefixsum(k)/k)) ≤≤ t (i.e. the time queried) (to check that if we open first k taps, we can fill at-least those locks) and if (k*t) >> total sum (to check that if we open first k taps, we can fill the remaining locks as well). It involved the use of double so I wasn't sure if it would FST or not. Code: 161214410 |
21 minute(s) ago, # | Can anyone share approach for D? Thanks. |
-
You never want pipe x on if pipe x-1 was off (as all excess water overflows upwards and is only wasted if it falls off the end.). You can therefore calculate how long it will take with 1 pipe and build from there by adding each of the next pipes using DP (for every new pipe x you need to know the minimum time to fill locks x-1 and how much overflow there was) and end up with a decreasing array where a[x] is the number of seconds if x pipes are on. Finally you answer the queries with a binary search on this array.
-
A simple way is to solve the inverse problem instead: given that you can use i pipes, what is the minimum time to fill all locks?
Then some observations:
(1) The time needed is at least sum of all elements divided by n
(2) It is always the best to put the ii pipes in first ii locks
(3) Some large locks at the front are bottlenecks, can you formulate the bottleneck mathematically? (hint: observation 1)
If you solve the mentioned problem and store them down, given any time, you can do O(log n) BS for the minimum pipe required.
-
Because you have digit 11. And you print not n-digits number
1 3 900 Your output: 11011
I think that verdict from your submission
wrong answer Token parameter [name=B] equals to "675102927261069662248365861045...5410685638422669610627292105911", doesn't correspond to pattern "[0-9]{100000, 100000}"
pretty sure explaining things
20 minutes ago, # | This round is better than yesterday's round. |
18 minutes ago, # | My solution to F: Spoiler |
17 minutes ago, # | The round is not bad,but B and E are too sad,or you can say it is annoying. |
5 minutes ago, # | how to solve C?... i am unable to build a approach :( |
a moment ago, # | To not keep you waiting, the ratings are updated preliminarily. In a few days, I will remove cheaters and update the ratings again! |
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK