結果

問題 No.457 (^^*)
ユーザー Mr.FukuMr.Fuku
提出日時 2018-08-08 23:01:21
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 44 ms / 2,000 ms
コード長 1,448 bytes
コンパイル時間 161 ms
コンパイル使用メモリ 12,800 KB
実行使用メモリ 11,648 KB
最終ジャッジ日時 2024-09-23 04:14:05
合計ジャッジ時間 1,928 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 30 ms
10,752 KB
testcase_01 AC 30 ms
10,752 KB
testcase_02 AC 30 ms
10,624 KB
testcase_03 AC 30 ms
10,752 KB
testcase_04 AC 30 ms
10,880 KB
testcase_05 AC 30 ms
10,624 KB
testcase_06 AC 30 ms
10,752 KB
testcase_07 AC 31 ms
10,624 KB
testcase_08 AC 31 ms
10,624 KB
testcase_09 AC 32 ms
10,880 KB
testcase_10 AC 37 ms
11,136 KB
testcase_11 AC 43 ms
11,648 KB
testcase_12 AC 37 ms
10,880 KB
testcase_13 AC 44 ms
10,752 KB
testcase_14 AC 33 ms
11,136 KB
testcase_15 AC 38 ms
11,008 KB
testcase_16 AC 42 ms
10,752 KB
testcase_17 AC 33 ms
11,008 KB
testcase_18 AC 31 ms
10,752 KB
testcase_19 AC 30 ms
10,624 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

s = list(input())
len_s = len(s)
close_list = [0]*len_s
face_l = []
face_r = []
cnt_l = 0
cnt_r = 0

def readface():
    eyes = []
    kome = []
    close_cnt = 0
    for i in range(len_s-1,-1,-1):
        x = s[i]
        if x==")":
            close_cnt+=1
        elif x=="^":
            eyes.append(i)
            if len(eyes)>1 and len(kome)>0:
                for j in range(len(kome)-1,-1,-1):
                    if kome[j]>eyes[-2]:
                        face_l.append([i,kome[j]])
                        break
        elif x=="*":
            kome.append(i)
            if len(eyes)>1:
                face_r.append([i,eyes[-2]])
        close_list[i]=close_cnt

def delmin(n):
    global face_l,face_r
    d_list = []
    for i in range(len(face_l)):
        if face_l[i][0]<n:
            d_list.append(i)
        else:
            break
    d_list.reverse()
    for i in d_list:
        del face_l[i]
        
    d_list = []
    for i in range(len(face_r)):
        if face_r[i][0]<n:
            d_list.append(i)
        else:
            break
    d_list.reverse()
    for i in d_list:
        del face_r[i]

def check(light):
    global cnt_l,cnt_r
    if len(face_l)>0:
        cnt_l += close_list[face_l[0][1]]
    if len(face_r)>0:
        cnt_r += close_list[face_r[0][1]]

readface()
face_l.sort()
face_r.sort()
for light in range(len_s):
    if s[light]=="(":
        delmin(light)
        check(light)
print(cnt_l,cnt_r)
0