Submission #58824906
Source Code Expand
Copy
"""<方針>- アルファベットを数字に変換(`T`)して考える.- どのアルファベットを左右に持ってくるかで `26` ループをする.- 左右に持ってくるアルファベット数値を仮に `a` とする.- `T` で `a` が連続している部分と, `a` でない部分が連続している部分で分ける.- `a` でない部分が中心に選ばれたと考え,その左右に存在する `a` の数で掛け算をする.- `a` が `3` つ以上ある時は,中心も全て `a` のパターンがあるので,それを足す."""# 入力S = input()# 数値に変換T = [ord(S[i]) - ord("A") for i in range(len(S))]# 答えの数ans = 0# 全てのアルファベットに注目する.for a in range(26):# aの数を計算allCnt = T.count(a)# aが連続している回数のリスト
""" <方針> - アルファベットを数字に変換(`T`)して考える. - どのアルファベットを左右に持ってくるかで `26` ループをする. - 左右に持ってくるアルファベット数値を仮に `a` とする. - `T` で `a` が連続している部分と, `a` でない部分が連続している部分で分ける. - `a` でない部分が中心に選ばれたと考え,その左右に存在する `a` の数で掛け算をする. - `a` が `3` つ以上ある時は,中心も全て `a` のパターンがあるので,それを足す. """ # 入力 S = input() # 数値に変換 T = [ord(S[i]) - ord("A") for i in range(len(S))] # 答えの数 ans = 0 # 全てのアルファベットに注目する. for a in range(26): # aの数を計算 allCnt = T.count(a) # aが連続している回数のリスト A = [] # aでない部分が連続している回数のリスト B = [] # 現在aであるかどうか nowA = False # 現在の連続カウント nowCnt = 0 # 数値を走査する for i in range(len(T)): # aのとき if(T[i] == a): # 連続 if(nowA): nowCnt += 1 # 変化 else: nowA = True B.append(nowCnt) nowCnt = 1 # aでない時 else: # 変化 if(nowA): nowA = False A.append(nowCnt) nowCnt = 1 # 連続 else: nowCnt += 1 # aが一つもないパターンの例外処理のための番兵 A.append(0) # 左側にあるaの数 left = A[0] # 中心にaでない数値のパターンを答えに追加する. for i in range(1, len(B)): # 左と中心と右の掛け算 ans += left*B[i]*(allCnt-left) # 左の数を増やす left += A[i] # aが3以上ある時 if(allCnt>=3): # 組み合わせ(nCr)を足す. ans += (allCnt*(allCnt-1)*(allCnt-2))//(3*2*1) # 出力 print(ans)
Submission Info
Submission Time | |
---|---|
Task | D - ABA |
User | mattsunkun |
Language | Python (PyPy 3.10-v7.3.12) |
Score | 400 |
Code Size | 2006 Byte |
Status | AC |
Exec Time | 102 ms |
Memory | 97176 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 400 / 400 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample00.txt, sample01.txt, sample02.txt |
All | sample00.txt, sample01.txt, sample02.txt, testcase00.txt, testcase01.txt, testcase02.txt, testcase03.txt, testcase04.txt, testcase05.txt, testcase06.txt, testcase07.txt, testcase08.txt, testcase09.txt, testcase10.txt, testcase11.txt, testcase12.txt, testcase13.txt, testcase14.txt, testcase15.txt, testcase16.txt, testcase17.txt, testcase18.txt, testcase19.txt, testcase20.txt, testcase21.txt, testcase22.txt, testcase23.txt, testcase24.txt, testcase25.txt, testcase26.txt, testcase27.txt, testcase28.txt, testcase29.txt, testcase30.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample00.txt | AC | 61 ms | 76428 KB |
sample01.txt | AC | 61 ms | 76648 KB |
sample02.txt | AC | 60 ms | 76324 KB |
testcase00.txt | AC | 59 ms | 76508 KB |
testcase01.txt | AC | 59 ms | 76472 KB |
testcase02.txt | AC | 60 ms | 76592 KB |
testcase03.txt | AC | 65 ms | 81384 KB |
testcase04.txt | AC | 87 ms | 83092 KB |
testcase05.txt | AC | 78 ms | 81764 KB |
testcase06.txt | AC | 96 ms | 93428 KB |
testcase07.txt | AC | 77 ms | 81524 KB |
testcase08.txt | AC | 97 ms | 95728 KB |
testcase09.txt | AC | 77 ms | 81540 KB |
testcase10.txt | AC | 96 ms | 97176 KB |
testcase11.txt | AC | 74 ms | 81716 KB |
testcase12.txt | AC | 95 ms | 93952 KB |
testcase13.txt | AC | 78 ms | 81744 KB |
testcase14.txt | AC | 98 ms | 88128 KB |
testcase15.txt | AC | 91 ms | 84232 KB |
testcase16.txt | AC | 99 ms | 84832 KB |
testcase17.txt | AC | 73 ms | 81544 KB |
testcase18.txt | AC | 97 ms | 84292 KB |
testcase19.txt | AC | 82 ms | 82044 KB |
testcase20.txt | AC | 100 ms | 84572 KB |
testcase21.txt | AC | 82 ms | 81872 KB |
testcase22.txt | AC | 96 ms | 84304 KB |
testcase23.txt | AC | 82 ms | 82208 KB |
testcase24.txt | AC | 99 ms | 84656 KB |
testcase25.txt | AC | 79 ms | 82060 KB |
testcase26.txt | AC | 100 ms | 84376 KB |
testcase27.txt | AC | 92 ms | 84024 KB |
testcase28.txt | AC | 102 ms | 84264 KB |
testcase29.txt | AC | 82 ms | 81852 KB |
testcase30.txt | AC | 101 ms | 84408 KB |