Submit | All submissions | Best solutions | Back to list |
IRECSQRT - Inverse of Recurrence Problem With a Square Root |
Given this recurrence formula (be careful, it's in inverse form):
Given n (0 ≤ n < 264) and m (0 < m < 264), your task is to compute an modulo m.
It's guaranteed that an is always an integer.
Input
First line containing an integer T (0 < T ≤ 5×104), than T cases follow.
For each test case there are two integers n and m, written in one line, separated by a space.
Output
For each test case, output the required answer: an modulo m.
Example
Input: 10 0 10 1 10 2 10 3 10 10 10 100 100 1000 1000 10000 10000 100000 100000 9876543210123456789 1234567890987654321 Output: 1 2 5 5 5 51 251 6251 6251 657422418465782775
Time limit ~7x My program speed: Click here to see my submission history and time record for this problem
Added by: | Tjandra Satria Gunawan |
Date: | 2013-03-14 |
Time limit: | 13s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | All except: ASM64 |
Resource: | ONMIPA sel 2013 |
hide comments
|
||||||
2013-05-06 03:50:37 Federico Lebrón
I liked this problem, thank you :) |
||||||
2013-05-04 20:42:04 Ivan Hendrajaya
@Tjandra: Thanks, take a long time for me to solve this problem. For now C++ is my main programming language, so I try to solve this problem with highly (not fully) optimized C++ code. I think it would be better if the number of test cases is not that much. :) |
||||||
2013-04-28 10:17:35 (Tjandra Satria Gunawan)(曾毅昆)
@Ivan Hendrajaya: wow! superb solution... heavily optimized code written in C family ;-) I've been waiting that for a long time, finally it come.. thanks and congratulations, I hope you enjoy this problem.. :-D Last edit: 2013-04-28 11:09:18 |
||||||
2013-04-17 20:21:00 Andy
why am I getting NZEC? --ans(francky)--> It seems most of recent NZEC are in fact TLE... --(andy) Yeah, I noticed that after looking for a while in judge status... Anyway, got AC with C and without biginteger, use overflow manipulation :) Ans(Tjandra): wow, you did it without bignum, without fast I/O, and using order 3 formula (the optimal formula is in order 1). I think your "overflow manipulation" has a big chance to become the fastest one ;-) Last edit: 2013-04-17 22:29:43 |
||||||
2013-03-23 06:22:05 Shubham Depp Bansal
recursion limit is too much in python. why? --ans(francky)--> A well designed algo should not have such a problem ; the max depth is 64, and the default limit for python is 100000. You have to find a better formula, I think. Done..Just too much mathematics :) Last edit: 2013-03-25 11:22:26 |
||||||
2013-03-22 16:43:30 Michael Kharitonov
Insidious author chose the bounds of m to make C solution more complicated. Last edit: 2013-03-22 20:23:06 |
||||||
2013-03-19 16:14:53 (Tjandra Satria Gunawan)(曾毅昆)
seems that I pass that ONMIPA selection test 2013 (university level) :-D so start from tomorrow (20 March 2013) I'll be unavailable on SPOJ due to preparation on Regional Math Olympiad (ONMIPA regional level) until 11 April 2013, Sorry for inconvenience. Last edit: 2013-03-19 18:14:07 |
||||||
2013-03-16 09:13:34 (Tjandra Satria Gunawan)(曾毅昆)
You can challenge yourself to solve this problem using C language, if you feel you solve this problem easily :-) Just info: My 4KB of C code AC under 10s, and need ~6 hours for me to debug that long code... |
||||||
2013-03-15 11:57:19 Nipun Poddar
thanks Last edit: 2013-03-15 14:59:28 |
||||||
2013-03-15 08:45:52 Francky
Cool, 120B of python code. Ans(Tjandra): My python 3 code was 123B (initial) now golfed to 99B ;-) Also we use different formula, my formula seems a bit slower but let me easy to golf :-) And congratulations, you're the fastest for now :-D Last edit: 2013-03-15 21:53:57 |