游客 Signup | Login
中文 | En

3503 - 喵呜A

话说在遥远的喵星上,住着一群喵呜,有一天,老喵呜听说了地球上有一个叫ACM比赛,于是就打算派选手参加,但从喵星到地球路费特别贵,于是,老喵呜只能选拔几只高智商的小喵呜前往参加,但是该怎么选择高智商的小喵呜呢?他又听说ACM有一些找规律的题目,因此也希望搞一堆数列让众喵呜们找规律,谁找得多谁就去参赛。

        当然,有一些规律一眼就能看出来,例如{1, 2, 3, 4, 5},下一个数显然是6,因为后一个数等于前一个数加一。再例如{1, 2, 4, 8, 16},下一个数为32,因为后一个数等于前一个数乘以2。当然,也有一些规律不太容易看出来,例如{1, 3, 7, 15},下一个数为31,因为后一个数等于前一个数乘以2再加上1

        现在到了出题的时候了,老喵呜随手写了几个数字,想让小喵呜们告诉他下一个数是多少,当然,考虑到小喵呜们平常除了卖萌其他啥也不会,于是他告诉小喵呜们,每个规律都是前一个数乘上a再加上b,当然ab都是整数。

        出完题目后,老喵呜感觉有点累了,他希望你帮他验一下题,对于他出的每个序列,请你告诉他接下来的那个数是多少

Input

第一行为一个数T,表示测试数据个数。

对于每组测试数据,第一行包含一个整数n(0<n<=10),表示老喵呜给你的序列包含n个数,第二行包含n个数a1~an,表示老喵呜给你的序列。(|ai|<=1000)

Output

输出T行,每行代表一组测试数据的输出。对于每组测试数据,如果这个序列根本找不到规律,请输出Bad String,如果这个序列的下一个数有多种可能,请输出Too Many,如果这个序列的下一个数唯一,请输出这个数。

Examples

Input

5
5
1 2 3 4 5
5
2 4 8 16 32
4
1 3 7 15
4
16 8 4 2
2
1 3

Output

6
64
31
Bad String
Too Many

Solution C++

#include <stdio.h>
#include <algorithm>
using namespace std;

int a[1005];
int sub[1005];

int main()
{
    //freopen("a.in","r",stdin);
    //freopen("a.out","w",stdout);
    int i,j,n,T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        for (i=0;i<n;i++)
        {
            scanf("%d",&a[i]);
        }
        if (n==1) {printf("Too Many\n");continue;}
        if (n==2 && a[0]==a[1]) {printf("%d\n",a[0]);continue;}
        if (n==2) {printf("Too Many\n");continue;}

        for (i=0;i<n-1;i++)
        {
            sub[i]=a[i+1]-a[i];
        }
        for (i=0;i<n-1;i++)
        {
            if (sub[i]!=0) break;
        }
        if (i==n-1) {printf("%d\n",a[0]);continue;}
        if (sub[0]==0) {printf("Bad String\n");continue;}
        int prev;
        for (i=0;i<n-2;i++)
        {
            if (sub[i]!=0 && sub[i+1]%sub[i]!=0) break;
            if (i==0) prev=sub[i+1]/sub[i];
            else if (sub[i+1]!=sub[i]*prev) break;
        }
        if (i<n-2) printf("Bad String\n");
        else
        {
            int A=prev;
            int B=a[1]-a[0]*A;
            printf("%d\n",a[n-1]*A+B);
        }
    }
    return 0;
}

Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题