Someone Please explain the difference between these two solutions for Compression Algorithm

I understand the pain in this, but given ~600 teams solved the Q, I don’t think any action will be taken at all.

It comes down to prior experience with double type answers and precision. I remember in one CF contest when a solution by Sumeet.Varma failed with 0.00001 error, which was totally because of him using Java. (same code in C++ passed)

Having said that, I don’t think it was nice of them to give a Q with such brutal “absolute error” rather than “relative error”. In many ways, I liked last years problem set better :confused: But whats done is done!

12 Likes

they can at least give some partial credits to other solutions with the relative error of 0.0000001

@d_skyhawk
It might be because you are using “ios_base::sync_with_stdio(false)”. It disables the synchronization between the C and C++ standard streams. By default all the standard streams are syncronized, and after that you have used cin as well as printf, that might be the error in this case.
Bdw Im not sure about this. This might be the case!!

3 Likes

This years questions were not testing the skills but the knowledge of the language a person use, getting a WA just because of precision difference is unjust. Ranklist would have been a total stranger to the current Ranklist.

3 Likes

@ak_1andonly I do agree, just spent hours debugging code rather than solving problems.

1 Like

Ya this icpc tested our skills in programming language and math and not algorithms how does make sure the right teams are selected to regionals ,this needs to improve in forthcoming years and getting wa for not typing cout<<fixed;was annoying and losing a place in regionals because of that is even more annoying to say the truth this contest might have discouraged many debues in icpc even icpcsc @admin

2 Likes

Can someone please explain me how you derived that formula? Even after spending so much of time I couldn’t figure it out? @d_skyhawk @vijju123 @swetankmodi @rishi_07

1 Like

Our code gives the correct output for the above mentioned test case and even with all other test cases. Our submission with id, 16113398, gives WA during the contest. @admin, Please look into this issue. PS: While calculating the absolute error of our answer, consider the full answer with more than six places after the decimal as the expected answer and not the truncated one.

@swetankmodi please provide solution for compression algorithm.

I am not completely sure when we go this deep into decimals dear, I am sorry for that :(. But the reason you got WA is realted to absoute value being used, being rutheless ({10}^{-6} doesnt make sense to me since correct algo gives very near answers). I also feel that relative error should ahd been considered.

No, there’s either an issue with the judge (a bug) or it’s a feature (they’re checking absolute error and not relative error)

They intentionally checked absolute error, and trust me things get dicey when you aim for this high precision. Usually people tolerate an absolute error of 0.01, or relative error of {10}^{-6}, which make sense to me. Absolute error of {10}^{-6} was really, well, rutheless.

Yeah i said it might be a bug or even a feature. I’ve experienced this 5-6 times so I knew they wanted me to use python xD or play with c++ mechanics to get the correct result (exact)

1 Like

@swetankmodi but we used setprecision(10) still WA.

2 Likes

@rishi_07 I used setprecision 18 Still WA.

WA in python? Mind sharing your code if it’s allowed to?

I think 7 should give AC as well. Can anyone confirm?

@vijju123 Kindly check the photo posted by d_skyhawk in comment section. There upto 10 precision was used. Leave all of that aside, this is not the first time we are solving this type of precision related questions. 0.6lf works everywhere where 10^-6 precision is needed. I don’t understand why it failed here.

@rishi_07 , I checked it, and i know that 10 and 18 are giving errors. Before anything else, I want to know about 7.

Also, when they ask at long contest etc that an error of upto ${10}^{-6}$ is ok, they mean relative error unless stated other wise.

Well, I am not sure on WHY setter used absolute error when entire world knows that these issues arise from it, but idk, I mean…yeah idk why any1 would do that. I am sympathetical to the issue as well, but I dont think anything can be done about it.

It should give, but it didn’t. I’ve had a few cases as well where c++ failed and python got it accepted. One example is problem CHEFYODA from february or march 2017 long challenge. I don’t remember the other one’s. If you want I can search other problems?