ATOMS - Atoms in the Lab

Mr. Yagami is a scientist in the Bhabha Atomic Research Centre. They are conducting a lab experiment on nuclear fission. In nuclear fission, one atom breaks into more than one atom of the same type.

Initially, there are N atoms in the lab. Starting from now (t = 0), after each second, every atom will break into K atoms of the same type. They don’t want the number of atoms to exceed M, so they have to stop the reaction at some time t = T. Can you find this value T for Mr. Yagami.


First line contains P, the number of test cases. Next P lines contain three integers each. These three integers represent the values of N, K and M respectively.


For each test case print the time at which the reaction will have to be stopped.


1 ≤ P ≤ 10^4
2 ≤ N, K, M ≤ 10^18


2 2 7
2 2 8



1st test case:

  • at t=1, number of atoms will be 4.
  • at t=2, number of atoms will be 8.

So reaction has to be stopped at t=1.

2nd test case:

  • at t=1, number of atoms will be 4.
  • at t=2, number of atoms will be 8.
  • at t=3, number of atoms will be 16.

Problem Setter: Lalit Kundu

hide comments
pissedoff: 2020-07-23 12:50:51

TLE with long, accepted with float in Java

deepak_start: 2020-07-10 21:50:33

use long double in code.

neeraj2000: 2020-06-28 09:41:58

@dkkv0000 "To divide" was a great advise. Thanks

dkkv0000: 2019-05-13 08:08:22

hint:- it is better to divide than mutiplication

prachij: 2018-10-17 08:00:09

Was doing a super silly mistake. Thanks, @dokz for your test case.

dynamo214: 2018-08-19 15:02:19

Dont know why but using long long int causing tle so use long double.

Last edit: 2018-08-19 15:03:13
aaniket: 2018-06-15 11:40:18

If working with Java don't use Math.log() it will give TLE. Use Math.log10() instead

puneetgargmnc: 2018-04-27 13:14:28

can anyone tell me that long long int giving wrong answer bt AC using long double , why ? ?

vipulyadav150: 2018-02-28 17:48:42

@dheeraj161:just read the given constraints carefully chutiye!

dheeraj161: 2018-01-13 05:38:48

what should I output when K is equal to 1

Added by:darkshadows
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)