测试一下测试

int main()
{
    int k;
    scanf("%d",&k);
    while(k--)
    {
		int n;
        scanf("%d",&n);
        int a=-1,b=-1,c=-1,flag=1;
        // int a[n];
        //vector ve;
        for(int i=0;i < n;i++)
        {
            int tmp; scanf("%d",&tmp); 
            //ve[a[i]]++; 
            if(a==-1) 
            { 
                a=tmp; 
            }
            else if(b==-1&&tmp!=a) 
            { 
                b=tmp; 
            }
            else if(c==-1&&tmp!=a&&tmp!=b) 
            { 
                c=tmp; 
            }
            else if(tmp!=a&&tmp!=b&&tmp!=c) 
            { 
               flag=0; 
            } 
         } 
         if(flag==0&&c!=-1) 
         { 
             printf("NO\n");  
         }
         else 
		 { 
			if(c==-1&&b==-1) 
			{ 
				printf("YES\n"); 
			} 
			else if(b!=-1&&c==-1) 
			{ 
				double f=1; 
				if(a > b)
				{
					f = (double)a/(double)b;
				}
				else
				{ 
					f = (double)b/(double)a;
				}
				if (f == int(f))
					printf("YES");
				else  
					printf("NO\n");
            }
			else{
				int max=a > b?a:b;
				max=max > c?max:c;
				int min=a < b?a:b; 
				min=min < c?min:c; 
				double d = max/min; 
				if (d == int(d)) 
				{ 
					double e = sqrt(d); 
					if (e == int(e)) 
						printf("YES\n"); 
					else printf("NO\n"); 
				}
				else 
					printf("NO\n"); 
				} 
		    } 
	    } 
	return 0; 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值