[Offer收割]编程练习赛12 register

Ended

Participants:1323

Verdict:Accepted
Score:100 / 100
Submitted:2017-04-02 13:42:58

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include<stdio.h>
#include<math.h>
#include<algorithm>
#include<iostream>
using namespace std;
long long  a[100000];
int main()
{
    int T,i,j,n;
    long long max,temp,k;
    scanf("%d",&T);
    while(T-->0)
    {
        scanf("%d",&n);
        for(i=0;i<n;i++)
        {
            scanf("%lld",&a[i]);
        }
        sort(a,a+n);
        k=a[n-1]&a[n-2];
        max=k*a[n-1]*a[n-2];
        for(i=n-1;i>=0;i--)
        {
            for(j=i-1;j>=0;j--)
            {
                if(a[i]*a[j]*a[j]<max)
                break;
                k=a[i]&a[j];
                temp=k*a[i]*a[j];
                if(temp>max)
                max=temp;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX