結果
| 問題 | No.3503 Brackets Stack Query 2 |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-04-17 22:02:10 |
| 言語 | Go (1.26.1) |
| 結果 |
AC
|
| 実行時間 | 101 ms / 2,000 ms |
| コード長 | 710 bytes |
| 記録 | |
| コンパイル時間 | 17,741 ms |
| コンパイル使用メモリ | 281,828 KB |
| 実行使用メモリ | 28,672 KB |
| 最終ジャッジ日時 | 2026-04-17 22:02:38 |
| 合計ジャッジ時間 | 25,764 ms |
|
ジャッジサーバーID (参考情報) |
judge3_1 / judge1_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 30 |
ソースコード
package main
import (
"bufio"
"fmt"
"os"
)
type Node struct {
c byte
p *Node
n int
}
func main() {
sc := bufio.NewScanner(os.Stdin)
sc.Split(bufio.ScanWords)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
var q, cur int
fmt.Scan(&q)
st := make([]*Node, q+1)
for i := 0; i < q; i++ {
sc.Scan()
if sc.Text() == "1" {
sc.Scan()
c := sc.Text()[0]
prev := st[cur]
now := &Node{c, prev, 1}
if prev != nil { now.n = prev.n + 1 }
if c == ')' && now.n >= 3 && now.p.c == '|' && now.p.p.c == '(' {
now = now.p.p.p
}
cur++
st[cur] = now
} else {
cur--
}
if st[cur] == nil {
out.WriteString("Yes\n")
} else {
out.WriteString("No\n")
}
}
}