穷举每一种情况,没有超时居然过不了。
用例:
251
280 400 348 144 16 80 210 208 240 238 74 534 129 31 0 182 497 57 163 490 186 582 165 504 120 216 360 30 84 212 300 398 306 4 435 390 326 15 148 235 0 270 114 120 557 257 80 106 487 204 122 332 498 96 136 63 141 330 510 50 582 351 464 369 33 100 360 168 72 303 576 390 253 558 459 475 104 558 30 504 517 455 217 510 480 578 288 255 332 592 240 498 440 0 88 0 450 104 245 0 599 60 534 424 136 329 486 228 340 90 170 360 168 465 392 436 498 300 120 252 108 352 331 264 504 390 597 262 471 36 102 478 394 456 63 46 27 226 90 386 408 88 60 268 191 144 288 72 432 0 576 221 364 76 237 157 519 0 300 208 407 152 570 150 474 104 498 40 408 198 292 164 176 244 300 171 418 420 200 576 475 594 100 60 476 217 360 240 429 135 212 213 596 82 360 240 132 475 374 270 276 560 276 462 496 81 164 250 422 105 0 248 188 337 403 580 109 495 335 250 187 304 330 344 39 540 126 440 400 25 74 381 330 269 120 429 562 96 592 321 436 576 184 138 22 232 420 258 102 392 423

对应输出应该为:

242084

你的输出为:

70

import java.util.Arrays;
import java.util.Scanner;
public class Main {
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        long[] ints = new long[n];
        for(int i = 0; i < n; i++){
            ints[i] = scanner.nextInt();
        }
        Arrays.sort(ints);
        long cnt = 0;
        for(int i = 0; i < ints.length; i++){
            for(int j = i + 1; j < ints.length; j++){
                for(int k = j + 1; k < ints.length; k++){
                    long tem = ints[i] * ints[j] * ints[k];
                    for(int l = k + 1; l < ints.length; l++){
                        if(tem == ints[l]){
                            cnt++;
                        }
                    }
                }
            }
        }
        System.out.println(cnt);
    }
}