<almost-copy-pasted-part>
Hello! Codeforces Round 634 (Div. 3) will start at Apr/13/2020 17:35 (Moscow time). You will be offered 6 or 7 problems (or 8) with expected difficulties to compose an interesting competition for participants with ratings up to 1600. However, all of you who wish to take part and have rating 1600 or higher, can register for the round unofficially.
The round will be hosted by rules of educational rounds (extended ACM-ICPC). Thus, during the round, solutions will be judged on preliminary tests, and after the round it will be a 12-hour phase of open hacks. I tried to make strong tests — just like you will be upset if many solutions fail after the contest is over.
You will be given 6 or 7 (or 8) problems and 2 hours to solve them.
Note that the penalty for the wrong submission in this round (and the following Div. 3 rounds) is 10 minutes.
Remember that only the trusted participants of the third division will be included in the official standings table. As it is written by link, this is a compulsory measure for combating unsporting behavior. To qualify as a trusted participants of the third division, you must:
- take part in at least two rated rounds (and solve at least one problem in each of them),
- do not have a point of 1900 or higher in the rating.
Regardless of whether you are a trusted participant of the third division or not, if your rating is less than 1600, then the round will be rated for you.
Thanks to MikeMirzayanov for the platform, help with ideas for problems and for coordination of my work. Thanks to my good friends Daria nooinenoojno Stepanova, Mikhail awoo Piklyaev, Maksim Neon Mescheryakov and Ivan BledDest Androsov for help in round preparation and testing the round. Also thanks to Artem Rox Plotkin and Dmitrii _overrated_ Umnov for the discussion of ideas and testing the round!
Good luck!
</almost-copy-pasted-part>
UPD: Also thanks to ma_da_fa_ka and infinitepro for testing the round!
UPD2: Editorial is published!
vovuh logic
vovuh hello , I guess my rating will down to less than 1600,but I've registered before,will I be rated in this case?
I think the you won't be rated in this situation.
I think after rating is updated, you can deregister and register back
I guess you are lucky (?) :D
Wow wow, another Div.3 but this time I will not get rate :D
I good opportunity to get my rating back from today's Div2 lol
What does "open hacking" mean, sorry I am new? How can you hack a solution?
After each contest, there is a time of 12 hrs where if we find someone's solution incorrect, then we can give input the case at which the submission fails, if hacked you are rewarded with some points sometimes.
is there a way to sort solutions by programming languages? Now, I have to go through all the submissions to find Java submissions.
On the right hand side of status page,you can find language option under status filter and select language Java.
status > status filter > languages
1)After this contest (the same for following div.3 rounds and educational rounds), there's a period of 12-hour hacking phase.
That means, you can hack anyone you want(while in normal rounds you can only hack your "roommate" during the contest).
2)If you find something wrong in other's solutions(but passed the pretests), you can give an input which will make the solution fail (wa,tl,...)
In div.2 you get 100 points from each successful hack and lost 50 points from each unsuccessful one
In div.3 there's no prize or penalty for hacks.
What's "roommate"? Sorry, newbie.
In a normal round, you are assigned to a specific room, with ~50 people if I'm not mistaken. During the round, you can attempt to hack their solutions, but only if you lock your own solution first (this is because you will be seeing others' codes, it wouldn't be fair if you could change your own code).
A successful hacking attempt will give you a 100pt boost, while an unsuccessful hacking attempt will take away 50pts from you.
and what does locking the solution mean? If hacking starts after the round then how can one change his code?
Hope it won't go too mathematical ;/ questions about string is more interesting;)
50iq is not bad actually idk
But comparison of other websites code forces server is good
Did you ever participate in codechef cook off or luch time...they can't handle even 5000 participants properly...whereas codeforces handles nearly 20K participants...comparitively codeforces servers >>>>> any other cp server
Can't you guys take it as a meme...
The girl is the middle would rather be saying that "Give the lengthy problem A and engage participants."
Did you ever participate in atcoder contests It servers cannot hold even 5000 participants. Codeforces servers when it is +5000 submissions at time it will get some time but when it is less it works good!
it was just a meme bro... I know CF is really good.. I apologize for posting this...fine?
After every contest i felt disappointed.But believes that practice makes a man perfect. Best wishes for all. <3
Hoping to see "Yet Another Problems".
finally a div 3 contest :(
Can "Hacking A Soluton" also be included in Div 3 ?? Just an idea.
When div3 was first proposed then it was said that a beginner should waste time in hacking instead of solving problem. So contest time hacking is not available in div3 rounds. And there is 12 hours hacking phase for improving hacking skill. But i think 12 hour is too long. It can be reduced.
I think 12 hour just for global, maybe someone finish the problems then have to go to bed.When they weak up, they can hack.
Actually after 6 to 7 hours nothing for hacking. Almost all the hackable solution are already hacked in this time.
Thank you, as always I am excited for another div.3 :)))
Hello, is this rated?
rated for div 3(below 1600 rating)
I'll try to skew my propagating wave at least this time. Pray for strong pre-tests
lol
Problem set in recent codeforces contests seems tough for me. Looking to get some easier problem this time.
hopefully some short problem sentence
Why setter is yelling at tester?
Because of my invaluable suggestions :)
I think you should explain about your suspicious behaviour in the past contest. Because it looks like you've cheated before.
your suspicious behaviour
Apologize in advance if I mistakenly understand it.
I am not being rude, but I don't think so I need to explain you anything :)
The thing is, your code is totally same with another code in the past contest.
I don't want to be an annoying guy who repeat one thing everywhere. I just want to know what happen. If it isn't a cheat, I will sincerely apologize. If you've already be punished for that, I won't mentioned it anymore.
I will keep annoyying you if and only if you really cheated and haven't been punished so far.
Well You can see my rank in this contest :)
ok, got it.
Hoping for stronger pretests in A. Got hacked (unfortunately) in the educational rounds and it had been a while since I had solved 3 T_T and I missed it thanks to the A.
You should be more careful with some corner cases
That's more important and valuable than strong pretests.
good luck and high rating bro
00:01 nice network
You just risked there by some basic observation, I don't think that on minute 2 you were able to prove your solution. So don't be happy by that.
I hope to see Math problem~~
you make me a green i dare you
good luck
Hope the system test won’t be too long.
It's good to see vovuh back but I expect that codeforces will do something in order to handle such large number of submissions during the contests and I guess this time it won't be queueforces :)
I hope that the gap between the div.3 rounds will be decreased , its the best round
Hope my rating will go up.
I'm so vegetable......
Hope the statements will be shorter -_-
Thanks vovuh again for bringing such contests in this pandemic situation we highly thanked to codeforces and its community for bringing such contest in this period to make us somehow busy and involved.Thank you codeforces community !
The color spectra doesn't quite match Codeforces band XD
I am becoming
ExpertBlue after this round.I don't think so
Is it rated?
For you, yes. For expert or more, no.
Isn't it more logical to not allow experts or above from submitting solution for first 20 minutes rather than making problem A hard/confusing for div3 rounds atleast. Many participants don't even submit solution if they find problem A confusing or tough for it's bracket.
My rating is just 1600, so helpless
Good Luck Have Fun!
what happens when i hack my own solution ?
If successful:
You will lose a problem solved
If unsuccessful:
Nothing changes.
So it's obviously meaningless to hack yourself unless you've found some mistakes in your code after the contest.
What you see:
Codeforces Round #XYZ (Div. 3)
What I see:
Another unrated contest :'(
architb_12 why the hell are u giving this contest ,if u have such a mentality,and posting this nonsense doesn't show that u are cool
pizza_hut what mentality? I am just saying that I am sad that the contest is unrated. It is much more fun when it is rated. What is your problem with that?
architb_12 whats the problem when contest is rated for 70% of users on codeforces
I think you have completely misinterpreted me. I meant that it is more fun to give a contest when it is rated for you.
hey, first of all, learn to give respect to others (doesn't matter he is highly rated or low) and don't talk rudely. He was just saying that this contest is unrated for him and of course this was unrated for him because he has done efforts to be at that position where Div3 even Div2 is unrated for him. So, please don't post such non-senses. Even today tourist gave the Div3, can you stop him...No nah?
Can the frequency of Div.3 contests increase ?
This is what happens when Tourist attends Div 3.
How can one read the problem, figure out the solution and write down the code in 1 minute.....
Think about reading 3 problems, figuring out solutions, coding all 3 of them and getting them accepted in 3 minutes.
He doesn't read the problem, nor do any other red coders. They go straight to test case, find a pattern, and implement.
Unbelievable!
If problems see tourist comming they give up and solve themselfs.
You are very humorous
lol
Actually tourist has solved the problems before they solve themselves:)
technically, it was 36 seconds
answered here
What's the point of having 50000 testcases, if giving verdict still takes you > 10 minutes?
I'm sorry, what about you? I don't see any of your submissions were judged for more than 1.5 minutes.
F took > 10 minutes. It really didn't affect me. I understand its because these rounds don't have pretests, I guess.
Wow the servers have REALLY IMPROVED. MikeMirzayanov orz
tourist solved 7 problems in 22 minutes and still atheists exist. orz
A nice and balanced round !!
How to solve E2 and F?
Easy +rating, nice contest)
I was logged out suddenly while submitting please solve this problem it occurs most often during contests with me!
How do you do E2? I spent like 45 minutes binary searching for the second endpoint(and I think it was probably the right way since you have blocks of xyx or just one large block of length x), so you can use binary search to find the optimal value for the second endpoint, but it wouldn't work.
EDIT: Just realized that I thought a_i<=26 for E2 (as it was in E_1) so that's why I was getting wrong answer
Observation:
The contribution of a number is limited by number of occurrences of prefix and number of occurrences of suffix, In other words, if you have a prefix of 7 occurrences and suffix of 2 occurrences, Then you're only contributing to the final answer with just 4(2 from the left side which has 7 occurrences, and 2 from the suffix), So contribution = min(prefix,suffix) * 2.
Knowing the above, We can just try for each number x, A possible prefix that has 1 occurrence.. 2 occurrences .. 3 and so on, you can fill the middle with an element that occurs the most, you have only 200 distinct element, just go over them all.
Oh my this is neat. I mean the idea about checking only prefix and suffix. Thanks!!
Video Editorials + Facecam
How to solve E2. Any idea??
store position of every element in a vector v[203].for each number between 1 to 200 run two pointer from start and end of its position vector and between them find maximum time occuring integer frequency using prefix sum 2-d array.
can you elaborate on the prefix sum 2-d array? how are you storing in them?
more than 60k accepted submission and aprox 26k participants.wow amazing.
Why i can't hack someone? It's write me "Illegal contest ID" or "Неверный идентификатор соревнования"
Hack via status page,not standing page
Thank you very much :)
You're wellCUM! ^_^
Fast servers but speedforces :(
How did you all solve E2? I used Mo's and I wonder if that was overkill.
Oh man the alphabet is only size 200, Mo's was definitely overkill.
Yeah, I used Mo's too, don't know how others got that right
Here's my approach:
aaa...aaa
)...bb...
) between $$$i+1$$$ and $$$j-1$$$ using a precomputed table of counts for each prefix and each symbol.middle part score + 2 * symbol count
.$$$O(n\cdot k^2)$$$ in total, but the operation #3 is rare in practice, so it passes the pretests ¯\_(ツ)_/¯. Got MLE on the first attempt though, lol. Don't define int long long where it's not necessary.
Excellent solution. I thought O(N * K^2) would fail, but yours is super simple, so I guess it has a very LOW constant factor.
That is $$$O(n \cdot k)$$$ in total if you have position pre-calculation, not $$$O(n \cdot k^2)$$$. That is because $$$\left(\sum \text{occurrences of symbols}\right) = n, \text{not } n \cdot k$$$.
but for each prefix and suffix of given size and letter, he is going over all 200 letters to find biggest centre block. So I think its really $$$nk^2$$$ with small constants.
I think prefix table can be calculated for
vector<int>(200)
, then the max_element(for "b") can be found inO(k)
time. Since we traverse overO(n)
two pointer pairs(i,j)
, this gives total timeO(nk)
.FYI this approach is almost optimal; but at step 2 you should initialize $$$i$$$ and $$$j$$$ to the two middle occurrences of the symbol (if the amount of symbols is odd, just ignore the middle one), then move them away from each other, towards the end.
The benefit of this is that you can start with an empty set of frequences $$$f[200]$$$, then initialize that to the counts of each symbol between $$$i$$$ and $$$j$$$. Keep track of the most frequent symbol whenever you update ++$$$f[\cdot]$$$. And then do --$$$i$$$, ++$$$j$$$, and update $$$f[]$$$ as you go. You can always keep track of the most frequent letter in the middle part this way, and complexity is $$$O(n)$$$ because you do ++$$$f[\cdot]$$$ at most $$$n$$$ times.
For E2, I coded a
O(nklog(n))
time algorithm using the same idea as yours except using binary search instead of prefix sums. I realised that the complexity is too large. However, for testcase 9, which has 134 repeated 2e5 times, my solution should simplify down toO(nlogn)
. However, when I ran it on my system, it took more than 30 seconds and gave me TLE on codeforces. Can you please help? Here is my submission https://codeforces.net/contest/1335/submission/76624993I also tried the same thing but got tle on test 15 .76625017
Later i think to remove binary search and precompute freq table but memory limit exceed on test 9 .76625886
can anyone help ?
Replace ll from int in your program
wtf , It worked .
how they can set such a memory limit.
E2 complexity analysis:
$$$\displaystyle \sum_{c=1}^k freq_c \cdot k = \displaystyle k \cdot \sum_{c=1}^k freq_c = O(k \cdot n)$$$
Sum over $$$c$$$ for choosing the number in $$$1^{st}$$$ block. $$$freq_c$$$ for iterating over all possible lengths of $$$1^{st}$$$(and $$$3^{rd}$$$) block. Multiplied by $$$k$$$ for choosing the number in $$$2^{nd}$$$ block.
$$$\displaystyle \sum_{c=1}^k freq_c \neq k \cdot (freq_c)_{max} \neq k \cdot n $$$
$$$\displaystyle \sum_{c=1}^k freq_c = n $$$
What is Mo. I thought of doing binary search but failed to do so.
https://cp-algorithms.com/data_structures/sqrt_decomposition.html#toc-tgt-4
Could you please explain how you applied Mo's?
The problem can be reduced to answering a bunch of queries of the form: What is the most frequently any element appears in the range [L,R]? If the alphabet is large, you could attack this with Mo's Algorithm.
Unfortunately, it slipped my mind that since the alphabet is so small (only up to $$$200$$$ symbols), you could more simply create 200 prefix sum tables instead.
I didn't quite understand from your code how you're generating these queries. Could you please elaborate how you're generating these ranges?
I did, but one must be careful to not use long long, since it used to much memory. We have to use a $$$32$$$ bit type.
76620592
My solution is similar to yours but it is giving TLE on test 2. I am not able to figure out the reason.
My Submission
Is Mo's algorithm the only way to do it?
Really good round! I loved problems D and F. Had an idea for F but gave up after 20-25 minutes of implementation after I realised I didn't account for something mentioned in the question. Had about 20 minutes for E1 and E2 (I regret not having attempted E1 and E2 before F). I believe I'd have been able to solve E if I made a wiser decision earlier but shit happens, lol. Also, ideas for E, anyone?
You can enumerate a and the number of a, and then enumerate what's b, it seems 200*200*n, but you can find the really time complexity is 200*n
Keven Can you explain your solution? Is it similar to this: https://codeforces.net/blog/entry/75908?#comment-602884
200*200*n, first 200 enumerate a, n is the number of a, so first 200 times n is n, time complexity is 200*n
can you explain me why it is not 200*200*n?
I got AC on E1? but i assume that complexity was 200*200*n, now i sent same code in E2 and i got AC
In your solution you have
y = v[a].size() - 1;
which is actually not always n. In fact it would make the make the factor of 200*n to just n.yeap, I already got it, thanks!
In problem F, if N and M's range can be confirm instead of N*M <= 1e6 will be better
How do you guys solve D?
I finally figure out that we must change 9 postions which are respectively distributed in the nine squres.
So I enumerate the column and the row (maybe like N-queen Problem) and get the answer....
Author's solution is to replace all 2 with 1.
Why 2?
You can take any 2 numbers.
wow that's innovative, instead of figuring out which cell to edit.
Yeah, I also changed every 9 to 8. It took just less than 4 minutes for me to solve this. Fastest D problem ever for me.
You only need to make changes such that each row, col, block have at least two same elements. If you make changes at indices (0-based) (0,0), (1,3), (2,6), (3,1), (4,4), (5,7), (6,2), (7,5), (8,8), you end up covering all rows, cols and blocks. So, make the required changes to those indices => problem solved.
I did the same xD
Shhh, don't post anything remotely related to the word "same" :p They'll think we cheated
lol should I delete it?
a[1][1] = a[2][1], a[2][4] = a[1][4], a[3][7] = a[2][7], a[4][2] = a[3][2], a[5][5] = a[4][5], a[6][8] = a[5][8], a[7][3] = a[8][3], a[8][6] = a[7][6], a[9][9] = a[8][9] This was my idea. Later, got that replacing all 2's with 1's was good enough.
Funny way to solve F without detecting cycles: notice that if two robots get to the same cell, then they will always move to the same cell from then on. This means that we can find for each cell where the robot starting in that cell will be after some $$$2^{22}$$$ moves using binary lifting.
This is author's solution :)
Hi, this is my first contest. Can you please share the link to the author's solutions? I am not able to locate it. Thank you!.
I'll post them with the editorial. Please, be patient.
The contest was not at all balanced, I must say. Even you can see the rating of people and compare the no. of questions they solved. Starting 4 questions were not of much use as almost half of the contestant solved the first 4. Also, question D looked like it was meant for April Fool's 202 but was posted by mistake?
Why do you posting this from fake account? :)
You ignored my comment... What am I saying wrong according to you? You should accept the mistakes. :)
Which mistakes? Prediction mistakes? Maybe, I need to clean my magic ball to see the future better.
The only (and very doubtful) "mistake" here is the "gap" in $$$5400$$$ accepted solutions among official participants (which means that E1 was solved by 1/4 of people who solved D). This is not a big gap.
I could show you examples of really big gaps but I don't think I need to prove you something anymore. If you don't realize that this prediction with difficulties is good enough, I have nothing to say to you.
And, if you post your opinion from fake account, it seems like you don't want to anybody know who are you actually :)
Yeah, you are right. As far as I remember all the Div.3s I have given were perfectly balanced and excellent problemsets and all of them were made by you:)
Well, I disagree with you :) Most times there are some mistakes that you couldn't notice, but this time the contest went fine. There also were some minor mistakes but not as fatal as usual. This is the rare case when almost everything is fine and I'm glad to see that.
Thank you for the round! No queue, no weak pretests.I found problem E2 very interesting and problem D a bit hard for me but interesting too.Please make more div 3 contests, we really appreciate you :)
That's actually a really cool approach. Have you also tested a cycle-based solution? I am trying to implement a fairly straightforward search and it keeps running out of memory.
Looking at 32 pages of MLE results in Status, I think the memory limits for E and F could have been a little bit higher.
The approach with extracting cycles and doing some dp is much harder to implement, so I didn't even tried to do that. I could but didn't do this.
I ended up flipping the dimensions if N > M, and surprisingly this helped (76628096). According to the test results, it uses up 254.5 out of 256 MB, lol.
Well, I'm sorry to hear that. I really thought to increase memory limit, but my solution uses ~200MB (the two-dimensional vector of size $$$nm \log nm$$$) so I thought that the 50MB will be enough (because this is the only array which should have such size).
Hello ; can you please explain me why does N*M*M solutions pass for problem E2 ?
tourist has written a code with that time complexity ; here is his submission — https://codeforces.net/contest/1335/submission/76520445
And I am not able to understand how does that happen ; curiously ; I even did try to check the test cases ; and I see test case 9 which should break such solutions.
So clearly ; I am not understanding something ; can you please help me with this.
Thanks !
The solution of tourist has the complexity $$$O(nk)$$$ where $$$k$$$ is the size of the alphabet. If you take a look at the two outer cycles, you can notice that they just iterate over all characters of the string and this sum is obviously $$$n$$$.
Maybe, when I post the editorial, it will be more obvious to understand why this is $$$O(nk)$$$. Just be patient.
Oh ; I see ; I apologize for being a bit impatient ; and I thank u for the reply.
I understand the complexity analysis of that solution now ; Thanks !
vovuh please look at my submission for E2 this it got MLE 252700 KB but now I am submitting it got accepted this with 252800 KB (more space than previos)... :'( and because of that I was not able to submit E1 also during contest...
very sad!!! :'(
Thanks for teaching me something. I learned binary lifting for RMQ/LCA but didn't consider reusing the table for k-th ancestor queries.
I got E 5 min late -_-
Nice round!
help me please which problem i have with this code on problem B? https://codeforces.net/contest/1335/submission/76592383
You have taken 'g' twice in your array
How to think fast like tourist... :(
When he was solving each question in about 1 minute, I was drawing on mspaint.exe and looking for the solution :)
practise,practise and practise .smartwork +hardwork
In normal practice I could solve A and B with 1000 difficulty in less than 2 hours. :/
Probably my brain crashed because of taking too much practices on last night lol...
Do you know this website? https://vjudge.net/ I think is a good sit for practice. There are all kinds of projects to practice on.
Well pen-paper seems more reasonable for me
I have my own drawing pad & stylus pen so I don't wanna waste them too haha.
the best contest ever for me
Problem D
Can somebody please help me in finding out the problem of this submission. Apparently, the inputs are not being properly taken, instead some absurd garbage values are being shown. I was stuck with this for the last 40 minutes of the contest and still could not figure it out.
Input is not n*n integers, it is n strings in n lines.
You can't take the input as int sudoku[10][10]. Make it char sudoku[10][10] and change your code accordingly.
cin >> sudoku[i][j]; this takes takes whole row as input. Not a single integer
https://codeforces.net/contest/1335/submission/76590246
https://codeforces.net/contest/1335/submission/76509810
both solutions are identical and the person who submitted it from different accounts, intentionally did so to hack (and get points if hacking gets you extra points, not sure tho) !
Maybe that's the reason why he's still gray.
Successful Hacks don't change anything except the victim will lose a problem solved
Hacks with this method are......meaningless, honestly
people making such D should be banned from making future contests
Can you ban MikeMirzayanov?
People making such comments should be banned from making future comments
I did read the "you can change any..." as "you can swap any numbers in the grid". Still have no solution for that problem.
you can see my solution i also thought the same
https://codeforces.net/contest/1335/submission/76594021 my sol
Can you please make some better to and provide them to problem setters so that the people who works so hard for making this problem can take some rest.
Haha , why should i do that. I only want to solve problems not make them. But if some problem is bad and i say that it's bad dosen't mean i need to make problems.
Here is a Chinese proverb for you:“你行你上啊”. no can no BB!
It's your problem...
2! According to me it should be 6!``
1st and 3rd part must have the same length x
1 1 1 1 1 is the longest palindrome. What is your 6 length palindrome?
Damn! I missed x==x :/
I was also stuck at this point for half an hour
Number of a's on both sides of b's has to be equal as per the problem.
It should be 5. The longest 3 block palindrome here is 11111
1 1 1 1 1 is the answer and here both x=0,y=5,x=0
basically every answer should be a palindrome with max 2 types of elements, and the 2nd type of element should be sandwiched b/w 1st type of elements , hope it gives you a little idea ! PS: thanks ashkANOn for pointing out the mistake.
For 1 1 1 1 1 x=0,y=5,x=0 i think
It's really bad for me. 1335B - Construct the String said that " to construct a string s of length n consisting of lowercase Latin letters such that each substring of length a has exactly b distinct letters. " e.g. For test case: n, a, b are 22 17 12 my code output: abcdefghijgkkkkkkabcde
is it wrong?
Yes it is wrong for the prefix of size 17. I think you are trying to print this "abcdefghijkllllllabcde".
Can someone show me your solution to C?
My solotion is to binary-search the answer and check whether it is legal.
But my solution runs nearly 900ms.
Is there some easier and faster solutions?
Here. Mine runs in 61ms. Idea could be figured from the code but hit me up in PM or here if you need help understanding something.
Can you please briefly explain your solution?
I have a little difficulty in understanding it....
I can explain mine if you want to :)
There is a greedy aproach to this. We want to maximize the number of people in both teams. So we want to check the maximum number of students with the same skill (let's name it max_same) and also the skill (let's name it num). After that, we want to check the maximum number of students with different skills, different than num (there is the risk to put the same student in 2 groups). Both of these can be done with a simple sort on the initial vector and a linear scan. Now, if the absolute difference between the number of students between the 2 groups is at least 2, then we can transfer one student from the second group that we didn't take previously to the first to maximize the number of different skills. The answer is the minimum between the number of students between the 2 groups.
Code: 76607507
Thank you, but I have finished the problem in 62 ms(^v^)
Hi, can I be unrated for Codeforces Round #634 (Div. 3). Reason is with Problem D with Java. I submitted the code https://codeforces.net/contest/1335/submission/76566765 during the contest without PrintWriter but TLE'd on test case 2, although my solution is O(81*10^4) which should be under the time limit. After the contest I submitted the exact same code with PrintWriter https://codeforces.net/contest/1335/submission/76614841 and got AC. @vovuh vovuh
Best contest ever for div 3. Thank you god vovuh very much and hope everyone can become expert !
I didn't read D correctly and thought you needed to keep the "sudoku structure" ( just swap numbers around, no replacing ), so I came up with a backtracking solution and I just kept wondering how was it a div3D and how did so many people manage to solve it lol.
Strong Pretests and Intersting Problems, Fast Test and Good Network.
Thanks to vovuh & MikeMirzayanov
What is the intended complexity for E2?
O($$$N$$$ * $$$200$$$)
The complexity of your code is O(N*200*200). Many other solutions with this complexity have passed. I think the best we can do O(200*N*log(N))?
I believe my code is O(200N):
https://codeforces.net/contest/1335/submission/76611393
See my reply below. It can be done in O(N*200)
O(200*200*nlogn)
Not for E2
I can be done in O(N*200) analyzing from the "center" for each distinct value. Centers for value V means two distinct pointers (a, b) where the amount of V before a is the same as the amount if V after b. Then keep jumping a backward and b forward, both at the same time, but the jump is actually to the previous/next V value. While you do this, count the frequency of values in the middle of a and b, and keep the one with maximum occurrences, and add that to (amount of V before a)*2 keeping maximum for each time you move the pointers. This is linear for each value V
Nice solution!, initially I had thought of this method, but I tried to move the pointers closer instead of farther and it led to some complications in maintaining the maximum
Ah! I realise now that what I did was itself O(200*N). I did the complexity analysis wrong. Thanks!
Where can I report this self-hack? https://codeforces.net/contest/1335/submission/76616926
And then there's this one: https://codeforces.net/contest/1335/submission/76618522
no need to report.
There's no prize for such successful hacks
Also there's no Best Hacker Rank in div.3, only in Educational Rounds.
In F,Why did you keep 1 as white and 0 as black ?
If your intention was to delay submission time by 2 minutes, congrats :D
Could you please help me understand why my code for Problem C doesn't work? It seems pretty straightforward and I have seen other solve it my way, however my code fails on test 4. I have no idea why. Here is my submission.
I don't understand your code, but it seems to fail on the case "1 1 1 1 1 1 1...". The answer should be taking the whole array (n)
Don't compare two Integer(object type) using ==. It compares reference not value.
Thank yo soo much for your help. I used the intValue() method when comparing and my code is now working. Thank you so much for your help. Here is the working version.
I am getting automatically logged out when i press submit button for the first time in a contest.This is happening regularly with me from past 5 to 6 contests. I am still a specialist and those extra 15-20 seconds don't matter to me right now, but this might be a bug in the server that may need a correction. Please have a look MikeMirzayanov. Thanks!
Maybe your cookies are not working.
I have faced the same issue when clicking from the problem itself instead of going to the submit code tab
I'm also facing some problem while submitting my first solution of previous 2-3 contests. I get some html 403 forbidden error with some token value!
In E1 test 2 set 107 is "4 1 4 1" and the expected answer is 4?
Am I missing something?
I think that the counter in the evaluator that displays the WA test number is off by 1
No, I'm pretty sure that's the line. I made a submission that outputs -1 at 107th item, and it gets caught as -1.
https://codeforces.net/contest/1335/submission/76621065 wrong answer 107th numbers differ — expected: '4', found: '-1'
Then I submitted an app that prints only the 107th line's input. And it is "4 1 4 1".
https://codeforces.net/contest/1335/submission/76621266
It can't be 4.
It prints all the inputs starting from the first; 4 1 4 1 is actually the first test case.
On 107th iteration you are taking input for 1st time. It is taking 1st case as input not 107th case.
Is that input visible from the test case?
Why are some of the submissions containing this part?
if (t == 'something') cout << "OK" << endl;
Does it give any benefit?
They do that so they can get easy hacks from another account
So, somebody want to explain 1335F - Robots on a Grid?
As I understand we need to find the loops, and the size of the loops. We can fill all cells of the loops with robots. Then, there are paths leading into the loops. We can use robots from white loop cells and place them on black into-pathes cells.
How to implement that?
A very strange thing happened with me during the contest. My code for problem E was running perfectly fine on code blocks but was showing a run time error on test 1 when I submitted. After the contest when i changed ll(which was defining long long int) to int then the solution was accepted Could anyone help me with this.
Code which was showing run time error : https://codeforces.net/contest/1335/submission/76603369
Code which got accepted after the contest : https://codeforces.net/contest/1335/submission/76621202
You might get an unexpected high value here if size() returns 0, since it is unsigned.
Look at this code.This guy added a special test case in his code just to hack himself later. https://codeforces.net/contest/1335/submission/76620858 I hope the authorities will look into this matter.
For problem E2, memory of O(2*N*200) gave MLE, but O(N*200) passes. Can anyone explain the reason. MLE: 76596543 AC: 76621338
Maximum N is 2e5
2*2e5*200=8e7,an integer takes 4 bytes, so the total space used is 3.2e8 Bytes
The limit is 256MB,1MB=1024KB,1KB=1024Byte,so the space limit is 256*1024*1024=2.6e8 Bytes
Obviously 3.2e8 is larger than 2.6e8.
Now i understand. Thanks.
tourist in Div3 remembers me of lightning mcqueen in thunder hollow
What type of contest was this? I feel this round is more of a typing round. I know it is a div3 contest but it was not meant to be conducted so easy so pls set some good problems next time in div3 too.
Couldn't agree more. Div 3 rounds used to be fun but this wasn't. The contest gave atcoder beginner contest feels.(Especially D problem)
Yeah, u are right!!!
kaneki_007 Am I right in assuming the reason you didn't solve E1, E2 and F despite the contest being so easy is you got bored by how easy they were and left?
P.S. Please be more respectful to problem setters they put in a lot of effort for seemingly simple problems as well.
Yeah, man, u are right. Thanks for correcting me:):)!!
Nah, you can feel TypeForces Rounds whenever they happen. This round was pretty easy tbh (okay, vovuh, don't make the next round too hard tho :p). A was one liner, B can be done in 8-15 lines, C can be done in 5-15 and D can be done in 5-15. I tried F but messed up (50-100 lines seem to be good). E can be done in about 50. Considering most people solved A-D, 50 lines of code is pretty easy.
It's not about the length of the code, it's about the techniques and topics needed to solve the problems. I found E2 and F really interesting problems
My code fails for input #633 in test case2 for problem C? Can someone suggest what is the problem? Here is my code: Code: https://codeforces.net/contest/1335/submission/76603660
Please do not paste your code here. Instead, paste a Pastebin or Ideone link of the code in case you have any query.
My solution to Problem D:
Just replace all '2' into '1'.
i did exactly same!
can u describe in words ?
It is not necessary to keep the amount of each type number unchanged, so just repalce all '2' to '1' is okay. Because it is a sudoku, each row, column and block has exactly one '1' and one '2'.
Any reason why unordered_map solutions not getting hacked today?
I am not able to figure out why my solution is giving TLE on test 2 though my idea is similar to most of other people's. My Submission
I'm pretty sure it is due to memset in cnt array. Imagine you have 10^4 tests and you memset all the array in each one. That will for sure get TLE. You just need to clear positions you used, not everything from 1 to 2*10^5
Yes, it worked. Thanks for your help
i am new to codeforces so i have a doubt . Will i get penalty for wrong submission if i could not solve that problem but i submitted too many wrong solutions??
No brother
What this error mean?? I ran my program on different editors,they gave answers correctly for 1st case but codeforces isn't
Diagnostics detected issues [cpp.g++17-drmemory]: Dr,2020-04-13.M Dr. Memory version 1.11.0
Dr,2020-04-13.M Running "program.exe"
This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information.
C:/Programs/mingw-w64-7/lib/gcc/i686-w64-mingw32/7.3.0/include/c++/debug/vector:417:
Error: attempt to subscript container with out-of-bounds index -1, but
container only holds 3 elements.
Objects involved in the operation:
Dr,2020-04-13.M
Dr,2020-04-13.M NO ERRORS FOUND:
Dr,2020-04-13.M 0 unique, 0 total unaddressable access(es)
Dr,2020-04-13.M 0 unique, 0 total uninitialized access(es)
Dr,2020-04-13.M 0 unique, 0 total invalid heap argument(s)
Dr,2020-04-13.M 0 unique, 0 total GDI usage error(s)
Dr,2020-04-13.M 0 unique, 0 total handle leak(s)
Dr,2020-04-13.M 0 unique, 0 total warning(s)
Dr,2020-04-13.M 0 unique, 0 total, 0 byte(s) of leak(s)
Dr,2020-04-13.M 0 unique, 0 total, 0 byte(s) of possible leak(s)
Dr,2020-04-13.M ERRORS IGNORED:
Dr,2020-04-13.M 2 potential error(s) (suspected false positives)
Dr,2020-04-13.M (details: K:\invoker-prod\work\codeforces6\60c583d1d5042c09b8b90fe60fe5fe0b\check-acfb434e06065bfe7c8a7fcb2d8ca975\run\DrMemory-program.exe.3432.000\potential_errors.txt)
Dr,2020-04-13.M 22 unique, 26 total, 39452 byte(s) of still-reachable allocation(s)
Dr,2020-04-13.M (re-run with "-show_reachable" for details)
Dr,2020-04-13.M Details: K:\invoker-prod\work\codeforces6\60c583d1d5042c09b8b90fe60fe5fe0b\check-acfb434e06065bfe7c8a7fcb2d8ca975\run\DrMemory-program.exe.3432.000\results.txt
Dr,2020-04-13.M WARNING: application exited with abnormal code 0x3
can someone plz explain the approach for E
Search in this blog, there are discussions about it: https://codeforces.net/blog/entry/75908?#comment-603025
in the question it is given that distinct characters is at most 2 , so u can run two loops of 200 for all combination and make resulting sequence using index of those numbers which u can compute while taking input itself . The problem reduce to a sequence of 2 distinct numbers and u can solve using two pointer method . for i==j ans will be size of index of that i /j .
I am not able to figure out that why is my anti sudoko code not working. Please help me.Link to the code:https://codeforces.net/contest/1335/submission/76592951
Your code is correct for a single test case, you simply forgot an additional loop: https://codeforces.net/contest/1335/submission/76642028
https://codeforces.net/contest/1335/submission/76641997
This is E1 problem Can anyone give me the test case where my solution fails. gfonn ZsibbadtKubikus
1 5 1 2 1 2 1
5
It's not correct. Make sure, that you understand the problem.
1 1 2 1 1
What do you mean?
this is three block palindrome of length 5
I mean
1\n5\n1 2 1 2 1
after every 12-hour phase of open hacks. Sever gets disturb why?
If all my solutions are correct, that is, they are not hacked, how can my rank decrease? After standings were frozen just after the contest, it was 1990 and now it's over 2200.
Probably because successful hackers get extra points.
Successful hacks do NOT give the hacker extra points in div.3 and educational rounds
2200 / 17000 all contestants, i guess you will increase a bit, good luck !
Probably you disclicked "show unofficial" button.
Sometimes this feature doesn't work properly and some unrated participants mistakenly appeared even you don't want them to appear(unrated participants aren't official participants)
Rank 1990 is the real ranking(without unrated participants) and 2200 is not(with unrated participants)
(That's my guess)
If you clicked "show unofficial" button, then maybe virtual participants affected your standing.
2200 is the rank among all participants. It is around 1100 only for Div3. What's strange, both of them increased after the round. xD
good luck for us
How i can solve (problem E) by dynamic programming
when the ratings will be updated for this round?
after the systests.
Systest will begin soon
thanks !
It's my first time to read the comments even I've been here for 15 months. I just found the comments section so interesting. I'm going to come here every time. lol
What does it mean by the word "hacking" or "hacking phase"? I can see a lots of comments containing the word "hacking".
if you found a solution which might fail some test case then you can hack it by providing the test case and get extra points.
In Div3 rounds(and Educational) you don't get extra points for sucssefull hacks.
so what's the point of making hacks in such contests ?
You can get better place in the contest by hacking somebody upper than you in the results table.
Sorry I'm not familiar with these contest. But do we have an access to download the complete problemset of each contest? Thanks.
Is this what you want ? Every contest has it.you can use ctrl + P to print it as download pdf
Yes. Thank you for your kindness.
tourist completes the contest within 22 min
problems: Am i a joke to you?
tourist Yes
When will the rating result come?
When will the ratings update? It’s been quite a while since the system testing after the hacking phase.
It was my first contest. I have few questions like When does ratings will change and in my profile under contests it isn't showing anything. vovuh take part in at least two rated rounds (and solve at least one problem in each of them) Since it was my first contest, will my ratings change or not?
Rating will be changed for everyone having rating less than 1600.
I've seen a few hacks where the hacked solution contains a statement like "if(n == x) print y" and the hacker just gave x as an input and hacked the solution. Obviously that hacker had himself uploaded the hacked solution from another id. Afaik, after the contest is over, you do not gain points for the hack, so why would anyone do this? Is there any advantage you gain or what?
May be they like to read word "Successful hacking attempts"
There is no other benefits
When will my rating get updated? I've only participated in 1 competition before and my rating after that was 1399. It's been a while since this round ended but my rating hasn't been updated.
In the above blog it says Regardless of whether you are a trusted participant of the third division or not, if your rating is less than 1600, then the round will be rated for you.
So, I will be rated right?
Yeah, you will be. Don’t worry. You might just not show up on the official rank list until you give two rated competitions.
https://codeforces.net/contest/1335/submission/76667274 Question E: My idea is to find all x(p times)y(q times)x(r times) strings[x maybe equal to y] then find maximum, which can be solved in O(26^2*N). Test 111 of 2 is failing and I saw none who implemented it. Can anyone please find fault in my code or logic? Thanks In Advance
I think you misunderstand the problem E statement. this testcase will shou you
~~~~~ 1 8 2 1 1 2 2 2 1 1 ~~~~~ The correct answer is 7
try this case 1 5 1 2 1 2 1
can anyone help me to find my errors.Here is my submission 76673853
try this test case 1 5 1 1 1 1 1 you will get wrong answer
Finally, solving sudoku in newspapers helped me here. Solved Div3 D within 14 min from first read.
Can anyone try to hack those $$$O(200nlogn)$$$ solutions in D2?
I can only hack some slower ones in them, and I think the others should also be hacked.
How could you hack after the Open Hack Phase ended. The function isn't available to me.
Feature for div1: uphack
I got it. Thank you :)
How can I hack my code after the Open Hack Phase ended? The 'CUSTOM INVOCATION' doesn't allow me to upload my input (file size:781KB) or gerneration code.
It's impossible to hack after the hacking phase unless you are in div.1
Also, the size of manual input cannot exceed 256KB.
You can test it locally.
Oh, I got it. Actually I prefer to do offline test. But there is a huge time difference between the offline and online test, especially when doing some stress tests. I have tried to tune my command line when compiling, but it doesn't help.
Hello vovuh, all of my solutions got skipped because of my code coinciding with my own submission for problem D, how is this possible? All I did was slightly alter my code for D and resubmit it because I thought it may be wrong, am I not allowed to do this? Can you please fix this issue, I don't want this round to be unrated for me.
Some participants received an erroneous notification that their code matches their own code, this will be fixed.
Hi I received a mail saying that my solution to 1335C significantly coincides with another of my own solutions. Actually, the first time I submitted, it got accepted, but I later noticed that there is a minor mistake in my solution (I started a for loop with Index 0 instead of with Index 1). So I corrected it and submitted again, and it was accepted again. Please look into this.
Hey there, This is Abhishek. I am writing this regarding same looking submissions problem. Two of my solutions were copied by someone from internet and were submitted resulting in me being skipped from the contest. It was first time for me to solve five questions and i was really excited as i got a good ranking and my rating would go high. But after this they are likely to sink to bottom for something I am not at full fault. I can prove the originality and proper evidence to support my case. If there could be any help, then please help me out as it would be really discouraging to see a decline in ratings and be labelled as cheater.vovuh
never use online compiler and if you use it then uncheck the public button.
What is this ? Why my code is skipped? Comparing with my submission & my submisson system skipped my code,it it joke?
Attention!
Your solution 76599020 for the problem 1335E2 significantly coincides with solutions KamruL_Hasan_/76599020, KamruL_Hasan_/76605786. Such a coincidence is a clear rules violation. Note that unintentional leakage is also a violation. For example, do not use ideone.com with the default settings (public access to your code). If you have conclusive evidence that a coincidence has occurred due to the use of a common source published before the competition, write a comment to post about the round with all the details. More information can be found at http://codeforces.net/blog/entry/8790. Such violation of the rules may be the reason for blocking your account or other penalties. In case of repeated violations, your account may be blocked.
I never used any online compiler.
yes there is an error int the system and they are fixing it.
Attention!
Your solution 76607973 for the problem 1335E2 significantly coincides with solutions TTMMM/76607973, TTMMM/76608322. Such a coincidence is a clear rules violation. Note that unintentional leakage is also a violation. For example, do not use ideone.com with the default settings (public access to your code). If you have conclusive evidence that a coincidence has occurred due to the use of a common source published before the competition, write a comment to post about the round with all the details. More information can be found at http://codeforces.net/blog/entry/8790. Such violation of the rules may be the reason for blocking your account or other penalties. In case of repeated violations, your account may be blocked.
PLEASE SEE, BOTH CODES ARE SUBMITTED BY TTMMM DURING THE CONTEST. KINDLY RECTIFY THE BUG. **** MikeMirzayanov vovuh
Never use public ide next time. Read the rules completely,please.
P.S. You can use the "edit" function.It's not necessary to submit a comment twice for editing.
Don't beg, just don't use a public ide next time.
Not reading rules is your fault. Take care next time.
It's a clear rule violation to leak your code.
Sorry, but (I think) admins won't accept your explanation.
You don't need to care about every contest.Success is based on failures
Keep practicing and you will become better.
When will rating change MikeMirzayanov vovuh
My rating didn't increase till now?? Any one whose rating changed?? till now?
Rating are not likely to be updated until the self-coinciding issue is fixed
Please be patient.
Your solution 76579396 for the problem 1335D significantly coincides with solutions Joshua_Ali/76579396, Joshua_Ali/76592334. Such a coincidence is a clear rules violation. Note that unintentional leakage is also a violation. For example, do not use ideone.com with the default settings (public access to your code). If you have conclusive evidence that a coincidence has occurred due to the use of a common source published before the competition, write a comment to post about the round with all the details. More information can be found at http://codeforces.net/blog/entry/8790. Such violation of the rules may be the reason for blocking your account or other penalties. In case of repeated violations, your account may be blocked.
I've just received 2 emails saying that my submission looks like another solution on the same problem, but the real problem here is that the other code is also mine.
I have the same problem
vovuh mistakenly I sent my solution for E1 twice and now I get message from system that my submission [submission:Ebiarat/76592056], [submission:Ebiarat/76592646] is the same so it’s was blocked. What should I do ?
Waiting for admins to fix this
为什么还没更新rating啊orz
是因为 我 抄 我 自 己 的那个bug吗
Maybe
hahaha ni hao keai ya
(这层楼都是国人吗orz
Can I know when does the rating change in result of this contest?
Today I've got an interesting masage from codeforces: Attention!
Your solution 76548547 for the problem 1335E2 significantly coincides with solutions oleh1421/76548547, oleh1421/76549567. Such a coincidence is a clear rules violation.
Well,as you can see, both of those solutions are my, so... does this realy violates the rules?
Admins are trying to fix this.A message about this is on the top.
hey!! is there any way I could get test case 50 of the problem F. I am getting a wrong answer there and its really irritating. Cant figure out where i am wrong.
BTW it's second test case's 50th test case. And for the test cases, see this blog . In short, it isn't possible, but you can find some tricks here .
why are ratings still not updated???
I have participated in this contest but this is not appearing in my contests list. And my rating is also unchanged. Why is this happening?
Waiting for admins to fix "self-coinciding" issue.
Ratings will be updated after the issue is fixed, and this contest will be in your contest list.
Any idea how long that might take?
I think it'll be fixed soon(<2 hrs?)
Why my rating still does not change?
The "self-coinciding" issue has not been fixed yet.
Please be patient
I have participated in this contest ..but my ratings are unchanged. Also there is no data available about the participation in this contest on my profile
yes the ratings are not updated yet! just wait they'll update the ratings in some time then it will also be displayed in your rating graph. :)
I am getting TLE on different test cases on the same solution for E2. The only difference was just a white space. How is this possible?.. The test cases were 55 and 34
Running time is not absolutely the same for different runs.
Your solution spent almost 2000ms for each run.It's natural to have TLE on different tests.
Try to reduce your code's time complexity. I took a peak into your code, saw a lot of nested loops.
When will the rating changes?
Getting Runtime Error on Test Case 9 on this submission 76695733. Please someone point out the error
In test case 9, your array r has dimensions 201*200001 which exceeds the maximum array size.
But that should have given Memory Limit Error. Why Runtime Error?
Because you cant create an array with dimensions 201*200001
Hello.
As I am new to competitive programming and was coding in python so picked the same language for competitions. Can anyone recommend me good resources which helped you to learn ds and algo in (PYTHON) so that I can start learning it on the go?
Thanks in advance.
Here are 2 steps to success :-
STEP 1: Switch to CPP.(Otherwise, you will regret later)
STEP 2: Google your problem.(There is an ocean of resources out there).
Okay so I will learn C++ and yes for ds and algo in c++ there are good resources as compared to Python. Thanks
As you said using python will make me regret later can you tell why?
It is slower and you may get TLE in python with the same code you wrote in CPP. It is rare but frustrating.
I am new on code forces and my rating is 0 and in Codeforces Round #634 (Div. 3) I successfully solved 2 ques does my rating will increased #ma_da_fa_ka , #infinitepro
initial rating is 1500
Yeah, rating will update after some unexpected issues are fixed.So just wait for a moment.
I have been sent a message that my solution overlaps with another account's solution. I want to note that I am the owner of both accounts. I am not sure if this is the right place to post tho.
@MikeMirzayanov Hoping for both his accounts to be banned. It's clearly against the rules. No point trying to delete your message either now.
The email that was sent to me was concerned with the fact that my solution was shared among other people. If both the accounts were my accounts and if I have proof that they're both my accounts and not someone else's, which I do by the way, I don't really believe that it's a "violation of the rules". The solutions were written by me and submitted by me. No one other than myself was involved in the process. If this still is a violation of the rules, then I apologize for it and I'll gladly accept a penalty.
On the other hand, why don't we try to stay professional instead of throwing baseless accusations.
You're stupid if you think having two accounts is not against the rules. I don't need to prove it to you because you clearly haven't been through them.
EDIT: Read Q6 point 1
EDIT: Actually, read the entire thing. Because once both your accounts are banned, you'll make a new one anyway. To not have that banned too, knowing the rules would be helpful so that people like me don't make the so-called "baseless accusations". Besides, read the message you see while registering for a contest first, and understand the fact that it's against the rules to participate with more than one account, and then come and tell me about my "baseless accusations".
I guess it's my bad then. You are right, I will make sure to reread the rules again. Thank you for sharing this!
It's not that people strictly follow the rules tho. You can find fake accounts every now and then with blogs being posted asking some question, or reporting cheaters, etc. Even if you have more than one account, make sure that you're secretive in not letting your real account identity being known. LanceTheDragonTrainer is an example, and many many more.
The thing is, I made a second account just for practice and my real account for contests. My intentions were really not to violate the rules. I am happy you pointed it out though, I'll make sure to be more careful. Thanks again!
Will this contest be rated or not?
YES
For problem E2 this code_1 got TLE but this code_2 got AC. The only difference in them is that in the second code the vector 'te' is declared globally. Can anyone please tell what is causing such a huge time difference?
Hi all, As I was not regular,I became unrated. But I did last div3 contest with just A. But not rated yet. How can I become rated again?
Thanks.
Just submit a solution in any contest and get AC, you will be rated.
First of all this is your first contest(Nobody becomes unrated).
The only contest you participated has some issues therefore rating is not updated yet.Once they fix the problem you will be rated for the first time.
Did anyone hack the unordered_map solutions used in the contest? If so, what was the testcase used?
hey i am new to this i solved 3 ques in this earlier my rating was 1266 now its reduced to 1239 how?
it does not matter how many ques you solved! the total time taken and obviously your rank matters.