ACPC10A - What’s Next

no tags 

According to Wikipedia, an arithmetic progression (AP) is a sequence of numbers such that the difference of any two successive members of the sequence is a constant. For instance, the sequence 3, 5, 7, 9, 11, 13, . . . is an arithmetic progression with common difference 2. For this problem, we will limit ourselves to arithmetic progression whose common difference is a non-zero integer.
On the other hand, a geometric progression (GP) is a sequence of numbers where each term after the first is found by multiplying the previous one by a fixed non-zero number called the common ratio. For example, the sequence 2, 6, 18, 54, . . . is a geometric progression with common ratio 3. For this problem, we will limit ourselves to geometric progression whose common ratio is a non-zero integer.
Given three successive members of a sequence, you need to determine the type of the progression and the next successive member.


Your program will be tested on one or more test cases. Each case is specified on a single line with three integers (−10, 000 < a1 , a2 , a3 < 10, 000) where a1 , a2 , and a3 are distinct.
The last case is followed by a line with three zeros.


For each test case, you program must print a single line of the form:
XX v
where XX is either AP or GP depending if the given progression is an Arithmetic or Geometric Progression. v is the next member of the given sequence. All input cases are guaranteed to be either an arithmetic or geometric progressions.


4 7 10
2 6 18
0 0 0

AP 13
GP 54

hide comments
Dushyant Singh: 2015-12-02 16:15:13

@jinesl - Use if ( b == ( a + c ) / 2.0 ) instead of if ( b == ( a + c ) / 2 )

jinesl: 2015-12-01 15:15:57

This thing is blowing me up... I can't understand why I'm getting wrong answer...

rameshkonatala: 2015-11-17 07:52:04

Should I convert next no. in GP into fraction and display it?

Sid: 2015-11-16 23:15:44

Do take a note of this line above "three integers (−10, 000 < a1 , a2 , a3 < 10, 000) where a1 , a2 , and a3 are distinct." This proves 1, 1, 1 will never be a test case.

One silly mistake that I was doing that gave me many WAs was the statement "while (a1 != 0 && a2 != 0 && a3 != 0)". Its only later that I realized this would negate legitimate test cases like -3 0 3, -8 -4 0... i.e. any case with 0 in it(Oops!)

HEMANTH SAVASERE: 2015-11-16 13:40:37

hey guys according to definition of AP common difference can be any constant 0 or any negative number
so 1 1 1 is an ap and also gp

suresh007: 2015-10-28 14:50:27

i think there is no need to check for 1,1,1 sequence as number are distinct(input section).

sarthak_8: 2015-10-17 13:56:31

should I put a condition to satisfy the constraints?

Last edit: 2015-10-17 13:58:02
cqui: 2015-10-16 10:46:12

a1 , a2 , and a3 are distinct 1 1 1 should not be input.
should we check for wrong entries?

johnnycash: 2015-10-07 22:25:49

check for silly mistake......its a simple one but costed me many WA because of that reason...

harshmmodi: 2015-10-01 19:56:38

@ nonushikhar... 111 is a GP and not an AP since the given condition says that c.d. and c.ratio both are non-zero integer. Hence c.d. of AP cannot be Zero but c.ratio can be 1

Last edit: 2015-10-01 19:58:30

Added by:Omar ElAzazy
Time limit:1.799s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ASM64
Resource:ACPC 2010