結果

問題 No.3143 Colorless Green Parentheses Sleep Furiously
ユーザー ID 21712
提出日時 2025-05-17 00:54:29
言語 Go
(1.23.4)
結果
AC  
実行時間 95 ms / 2,000 ms
コード長 1,021 bytes
コンパイル時間 13,017 ms
コンパイル使用メモリ 241,688 KB
実行使用メモリ 7,848 KB
最終ジャッジ日時 2025-05-17 00:54:46
合計ジャッジ時間 15,920 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 49
権限があれば一括ダウンロードができます

ソースコード

diff #

package main

import . "fmt"
import . "strings"
func main() {
	var n,k int
	var s string
	Scan(&n,&k,&s)
	// Xでコーナーケースの話を見てしまった
	// 減点
	if n%2==1 {
		Println("No")
		return
	}
	if Count(s,"(")!=Count(s,")") {
		Println("No")
		return
	}
	t:=make([]byte,0,n*5)
	d:=make([]int,n+1)
	x:=0
	y:=0
	for i,c:=range s {
		if c=='(' {
			x++
			d[x]=0
			if i>0&&s[i-1]==')'{
				t=append(t,'+')
				d[x-1]++
			}
			t=append(t,'(')
		} else {
			x--
			if x<0 {
				Println("No")
				return
			}
			if s[i-1]=='(' {
				t=append(t,[]byte("1+1")...)
			}
			if s[i-1]==')'&&d[x+1]==0 {
				t=append(t,'+','1')
			}
			t=append(t,')')
			if x==0 {
				y++
			}
		}
	}
	if x>0 {
		Println("No")
		return
	}
	//s=ReplaceAll(s,"()","(1+1)")
	//s=ReplaceAll(s,")(",")+(")
	//for Contains(s,"))") {
	//s=ReplaceAll(s,"))",")+1)")
	//}
	s=string(t)
	z:=Count(s,"1")
	if z>k {
		Println("No")
		return
	}
	if z==k&&y==1 {
		Println("No")
		return
	}
	s+=Repeat("+1",k-z)
	Println("Yes")
	Println(s)
}
0