結果
問題 |
No.457 (^^*)
|
ユーザー |
![]() |
提出日時 | 2019-04-18 10:03:42 |
言語 | Go (1.23.4) |
結果 |
AC
|
実行時間 | 99 ms / 2,000 ms |
コード長 | 781 bytes |
コンパイル時間 | 13,504 ms |
コンパイル使用メモリ | 239,840 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-09-22 08:48:51 |
合計ジャッジ時間 | 14,691 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 20 |
ソースコード
package main import ( "bufio" "fmt" "os" ) func main() { buf := 10000 sc := bufio.NewScanner(os.Stdin) sc.Buffer(make([]byte, buf+1), buf+1) sc.Scan() s := sc.Text() r := []rune(s) // fmt.Println(len(s)) var left, right int for i := 0; i < len(r)-4; i++ { if r[i] != '(' { continue } c, b, a := 0, -1, -1 // ^の出た回数, 最初に*が出た時の^の数, 最後に*が出た時の^の数 for j := i + 1; j < len(r); j++ { switch r[j] { case '^': c++ case '*': if b == -1 { b = c } a = c case ')': // fmt.Println(c, b, a) // 左向きが作れるか if a >= 2 { left++ } // 右向きが作れるか if b >= 0 && c-b >= 2 { right++ } } } } fmt.Println(left, right) }