結果

問題 No.3503 Brackets Stack Query 2
コンテスト
ユーザー aa
提出日時 2026-04-18 04:01:19
言語 Go
(1.26.1)
コンパイル:
env GOCACHE=/tmp go build _filename_
実行:
./Main
結果
WA  
実行時間 -
コード長 1,126 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 13,944 ms
コンパイル使用メモリ 277,428 KB
実行使用メモリ 42,536 KB
最終ジャッジ日時 2026-04-18 04:02:57
合計ジャッジ時間 27,702 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge2_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample -- * 1
other WA * 11 TLE * 1 -- * 18
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

package main
import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)
func main() {
	scanner := bufio.NewScanner(os.Stdin)
	scanner.Scan()
	Q, _ := strconv.Atoi(scanner.Text())
	query := make([]string, Q)
	for i := 0; i < Q; i++ {
		scanner.Scan()
		query[i] = scanner.Text()
	}
	left, center, right := 0, 0, 0
	str := ""
	if len(query[0]) < 3 || query[0][2] != '(' {
		for t := 0; t < Q; t++ {
			fmt.Println("No")
		}
		return
	}
	for i := 0; i < Q; i++ {
		if len(query[i]) >= 3 && query[i][0] >= '0' && query[i][0] <= '9' && (query[i][2] == '(' || query[i][2] == '|' || query[i][2] == ')') {
			str += string(query[i][2])
		} else {
			if len(str) > 0 {
				str = str[:len(str)-1]
			}
		}
		if len(query[i]) >= 3 {
			if query[i][2] == '(' {
				left++
			} else if query[i][2] == '|' {
				center++
			} else if query[i][2] == ')' {
				right++
			}
		}
		if left == center && center == right {
			temp := str
			for strings.Contains(temp, "(|)") {
				temp = strings.ReplaceAll(temp, "(|)", "")
			}
			if temp == "" {
				fmt.Println("Yes")
			} else {
				fmt.Println("No")
			}
		} else {
			fmt.Println("No")
		}
	}
}
0