Buggy python submission (verdict: Time Limit Exceeded):
def search(a):
    x=0
    a="".join(["0"*(3-len(a)),a])
    for i in range(n):
        if a[x]==s[i]:
            x+=1
            if x==3:
                return True
    return False
n=int(input())
s=input()
ans=0
k=[False]*1000
for i in range(1000):
    k[i]=search(str(i))
for i in k:
    if i:
        ans+=1
print(ans)

Fixed submission:
def search(a):
    x=0
    a="".join(["0"*(3-len(a)),a])
    for i in range(n):
        if a[x]==s[i]:
            x+=1
            if x==3:
                return True
    return False
n=int(input())
s=input()
ans=0
k=[False]*1000
for i in range(1000):
    k[i]=search(str(i))
for i in k:
    if i:
        ans+=1
print(ans)

Buggy python submission (verdict: Time Limit Exceeded):
def search(a):
    x=0
    a="0"*(3-len(a))+a
    for i in range(n):
        if a[x]==s[i]:
            x+=1
            if x==3:
                return True
    return False
n=int(input())
s=input()
ans=0
k=[False]*1000
for i in range(1000):
    k[i]=search(str(i))
for i in k:
    if i:
        ans+=1
print(ans)

Fixed submission:
def search(a):
    x=0
    a="".join(["0"*(3-len(a)),a])
    for i in range(n):
        if a[x]==s[i]:
            x+=1
            if x==3:
                return True
    return False
n=int(input())
s=input()
ans=0
k=[False]*1000
for i in range(1000):
    k[i]=search(str(i))
for i in k:
    if i:
        ans+=1
print(ans)

Buggy python submission (verdict: Runtime Error):
'''
　 ∧_,,∧    究極奥義「WAがACになーれ！！」
　（`・ω・)つ━☆・*。
　⊂　　 ノ 　　　・゜+.
　 し’´Ｊ　　*・ 
'''
def list_count(my_list):
    dic={} #辞書型の宣言
    for num in my_list:
        if num in dic: #もしnumがkeyとして辞書にあれば
            dic[num]+=1 #valueに+1
        else: #なければ
            dic[num]=1 #dicにnumというkeyを追加し、対応するvalueを1とする
    return dic
import sys
input = sys.stdin.readline
n=int(input())
s=list(input())
for i in range(n):
    s[i]=int(s[i])
l=[0]*1000
a=list(list_count(s).values())
#print(a)
n=len(a)
m=3
dp=[[0 for i in range(n+1)] for j in range(m+1)]

#メイン
#dp[i+1][j]:=i番目までの品物からj個選ぶ組み合わせの総数

for i in range(n+1):
    dp[i][0]=1
for i in range(n):
    for j in range(1,m+1):
        if j-1-a[i]>=0:
            dp[i+1][j]=(dp[i+1][j-1]+dp[i][j]-dp[i][j-1-a[i]])
        else:
            dp[i+1][j]=(dp[i+1][j-1]+dp[i][j])

#出力
print(dp[n][m])




Fixed submission:
def search(a):
    x=0
    a="".join(["0"*(3-len(a)),a])
    for i in range(n):
        if a[x]==s[i]:
            x+=1
            if x==3:
                return True
    return False
n=int(input())
s=input()
ans=0
k=[False]*1000
for i in range(1000):
    k[i]=search(str(i))
for i in k:
    if i:
        ans+=1
print(ans)

Buggy python submission (verdict: Runtime Error):
'''
　 ∧_,,∧    究極奥義「WAがACになーれ！！」
　（`・ω・)つ━☆・*。
　⊂　　 ノ 　　　・゜+.
　 し’´Ｊ　　*・ 
'''
def list_count(my_list):
    dic={} #辞書型の宣言
    for num in my_list:
        if num in dic: #もしnumがkeyとして辞書にあれば
            dic[num]+=1 #valueに+1
        else: #なければ
            dic[num]=1 #dicにnumというkeyを追加し、対応するvalueを1とする
    return dic
import sys
input = sys.stdin.readline
n=int(input())
s=list(input())
for i in range(n):
    s[i]=int(s[i])
l=[0]*1000
a=list(list_count(s).values())
print(a)
n=len(a)
m=3
dp=[[0 for i in range(n+1)] for j in range(m+1)]

#メイン
#dp[i+1][j]:=i番目までの品物からj個選ぶ組み合わせの総数

for i in range(n+1):
    dp[i][0]=1
for i in range(n):
    for j in range(1,m+1):
        if j-1-a[i]>=0:
            dp[i+1][j]=(dp[i+1][j-1]+dp[i][j]-dp[i][j-1-a[i]])
        else:
            dp[i+1][j]=(dp[i+1][j-1]+dp[i][j])

#出力
print(dp[n][m])




Fixed submission:
def search(a):
    x=0
    a="".join(["0"*(3-len(a)),a])
    for i in range(n):
        if a[x]==s[i]:
            x+=1
            if x==3:
                return True
    return False
n=int(input())
s=input()
ans=0
k=[False]*1000
for i in range(1000):
    k[i]=search(str(i))
for i in k:
    if i:
        ans+=1
print(ans)