AVGPR last subtask is failing :/

My last subtask is failing in Java but the same approach is working completely fine in python. Help me in finding out the mistake please!

It is due to overflow. Use appropriate data type.
e.g. test case -
1 1 1 1 1 …
Your code gives 704982704 instead of 4999950000.

Your approach is working fine in python because python does not allow overflow.

1 Like

Correction :stuck_out_tongue:

Python does not allow overflow till \approx {10}^{7000}. Been there, done that, hence the knowledge xD

1 Like

This upper limit I didn’t knew. @vijju123 Thanks.

I don’t think that’s correct @vijju123. The documentation clearly states “Integers have unlimited precision”

Yes, that 7000 limit holds for float data type I see. If you try to execute-


you will get an overflow error. And for some reason I feel float is the favorite data type of python xD. Yes, integers, I agree with you. Integers do have precision limited to your computer’s hardware capacity :stuck_out_tongue: (lets not throw unlimited here :stuck_out_tongue: ). For codechef I think it will be time limit though, instead of memory one.

The thing was, I see this is a general misconception in python where people try to store and manipulate numbers with as long as {10}^{9} digits just because of “unlimited”

@vijju123 which problem used that large value,link please

But I will recommend doing this problem without using python/ BigInt java or any similar library file.

https://www.codechef.com/LTIME49/problems/TWONMS/ - this one. If you try doing brute force with python, thinking that there is no limit, you get NZEC here.

But @vijju123 this question cannot be passed using Brute force. And without Brute force. This question does not require big nos.

I cant find the question link, but one user tried to do something on lines of \frac{A*{2}^{(N+1)/2}}{B*2^{N/2}} and he got NZEC error. Just search this “twonm” on forum and you will see people using JAVA big integer library to solve it. I call that “Brute Force” since you are doing what the question said xD

I tried doing brute force using python. I got 30 pts and TLE but did not got NZEC. https://www.codechef.com/viewsolution/18327886

As long as we are working with integers no error is thrown e.g. writing (1000000)**1000 is working fine. Whereas writing (10.0)**1000 shows NZEC OverflowError: (34, ‘Numerical result out of range’)

1 Like

so twonm is most solved in june lunchtime and still interesting,nice:)