結果
| 問題 | No.3503 Brackets Stack Query 2 |
| コンテスト | |
| ユーザー |
ID 21712
|
| 提出日時 | 2026-04-18 15:29:29 |
| 言語 | Go (1.26.1) |
| 結果 |
AC
|
| 実行時間 | 601 ms / 2,000 ms |
| コード長 | 1,174 bytes |
| 記録 | |
| コンパイル時間 | 24,904 ms |
| コンパイル使用メモリ | 280,268 KB |
| 実行使用メモリ | 35,200 KB |
| 最終ジャッジ日時 | 2026-04-18 15:30:14 |
| 合計ジャッジ時間 | 30,989 ms |
|
ジャッジサーバーID (参考情報) |
judge3_1 / judge1_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 30 |
ソースコード
package main
import . "fmt"
import . "os"
import bf "bufio"
func main() {
rd:=bf.NewReader(Stdin)
wr:=bf.NewWriter(Stdout)
defer wr.Flush()
var q int
Fscan(rd,&q)
cs := make([]string, 0, q)
brkt := make([]int, 0, q)
cmpl := 0
bads := 0
for ; q>0; q-- {
var cmd, ch string
Fscan(rd,&cmd)
if cmd == "2" {
ch = cs[len(cs)-1]
cs = cs[:len(cs)-1]
if bads > 0 {
bads--
} else if ch == ")" {
cmpl--
brkt = append(brkt, 2)
} else if p := len(brkt)-1; brkt[p] == 2 {
brkt[p] = 1
} else {
brkt = brkt[:p]
}
if len(brkt) > 0 || bads > 0 {
Fprintln(wr, "No")
} else {
Fprintln(wr, "Yes")
}
continue
}
Fscan(rd, &ch)
cs = append(cs, ch)
if bads > 0 {
bads++
} else {
switch ch {
case "(":
brkt = append(brkt, 1)
case "|":
if x := len(brkt); x > 0 && brkt[x-1] == 1 {
brkt[x-1] = 2
} else {
bads++
}
case ")":
if x := len(brkt); x > 0 && brkt[x-1] == 2 {
brkt = brkt[:x-1]
cmpl++
} else {
bads++
}
}
}
if len(brkt) > 0 || bads > 0 {
Fprintln(wr, "No")
} else {
Fprintln(wr, "Yes")
}
}
}
ID 21712