Search code examples
pythonlistsublist

Google Kickstart Round E 2020 Longest Arithmetic Runtime Error


I tried solving this challenge mentioned below but I got a Run Time error. I used Python

Problem

An arithmetic array is an array that contains at least two integers and the differences between consecutive integers are equal. For example, [9, 10], [3, 3, 3], and [9, 7, 5, 3] are arithmetic arrays, while [1, 3, 3, 7], [2, 1, 2], and [1, 2, 4] are not arithmetic arrays.

Sarasvati has an array of N non-negative integers. The i-th integer of the array is Ai. She wants to choose a contiguous arithmetic subarray from her array that has the maximum length. Please help her to determine the length of the longest contiguous arithmetic subarray.

Input: The first line of the input gives the number of test cases, T. T test cases follow. Each test case begins with a line containing the integer N. The second line contains N integers. The i-th integer is Ai.

Output: For each test case, output one line containing Case #x: y, where x is the test case number (starting from 1) and y is the length of the longest contiguous arithmetic subarray.

Limits Time limit: 20 seconds per test set. Memory limit: 1GB. 1 ≤ T ≤ 100. 0 ≤ Ai ≤ 109.

Test Set 1

2 ≤ N ≤ 2000.

Test Set 2

2 ≤ N ≤ 2 × 105 for at most 10 test cases.

For the remaining cases, 2 ≤ N ≤ 2000.

Sample Input

4

7

10 7 4 6 8 10 11

4

9 7 5 3

9

5 5 4 5 5 5 4 5 6

10

5 4 3 2 1 2 3 4 5 6

Output

Case #1: 4

Case #2: 4

Case #3: 3

Case #4: 6

Here's my python3 solution which gives run time error


t = int(input())
for t_case in range(t):
    n = int(input())
    arr = list(map(int, input().split()))
    x = []  
    for i in range(n - 1) : 
        x.append((arr[i] - arr[i + 1]))

    ans, temp = 1, 1
    j = len(x)

    for i in range(1,j): 
        if x[i] == x[i - 1]: 
            temp = temp + 1
        else: 
            ans = max(ans, temp) 
            temp = 1
                  
    ans = max(ans, temp) 

    print(f"Case #{t_case+1}: {ans+1}")

Could anyone please help me out.


Solution

  • As of now Kickstart is using Python 3.5 which does not support f-strings (they were added in py3.6). Try to replace them with str.format.