結果

問題 No.3372 Suitable Constraint
コンテスト
ユーザー ID 21712
提出日時 2025-12-04 01:22:15
言語 Go
(1.23.4)
結果
WA  
実行時間 -
コード長 1,421 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 13,910 ms
コンパイル使用メモリ 252,780 KB
実行使用メモリ 10,032 KB
最終ジャッジ日時 2025-12-04 01:22:33
合計ジャッジ時間 18,277 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 14 WA * 5
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

package main

import . "fmt"
import . "os"
import bf "bufio"
import . "sort"

func main() {
	rd := bf.NewReader(Stdin)
	var t int
	Fscan(rd, &t)
	for ; t > 0; t-- {
		var n int
		Fscan(rd, &n)
		a := make([]int, n)
		for i := range a {
			Fscan(rd, &a[i])
		}
		ans := solve(n, a)
		Println(ans)
	}
}

func solve(n int, a []int) int {
	// Aの各要素をノードとして移動をエッジとした最小全域木を作ればよい?
	// Aが正のノード同士の移動は正の最小Aと正の最大Aのエッジが最大の正のXを形成する(他の正のノードは正の最大Aを経由して移動)
	// Aが負のノード同士の移動は負の最小Aと負の最大Aのエッジが最大の正のXを形成する(他の負のノードは負の最小Aを経由して移動)
	// 正のノードと負のノードの移動は正の最小Aと負の最大Aのエッジが最大の負のXを形成する
	// Aすべてが非負で0を含む場合、Xは0
	// Aすべてが非正で0を含む場合、Xは0
	ps := make([]int, 0, n)
	ms := make([]int, 0, n)
	zc := 0
	for _, v := range a {
		switch {
			case v < 0:
				ms = append(ms, v)
			case v > 0:
				ps = append(ps, v)
			case v == 0:
				zc++
		}
	}
	Ints(ps)
	Ints(ms)
	if len(ps) > 0 && len(ms) > 0 {
		return ps[0]*ms[len(ms)-1]
	}
	if zc > 0 {
		return 0
	}
	if len(ps) > 0 {
		return ps[0]*ps[len(ps)-1]
	} else {
		return ms[0]*ms[len(ms)-1]
	}
}
0