結果
| 問題 | 
                            No.3110 Like CPCTF?
                             | 
                    
| コンテスト | |
| ユーザー | 
                             kakur41
                         | 
                    
| 提出日時 | 2025-04-20 03:50:01 | 
| 言語 | Python3  (3.13.1 + numpy 2.2.1 + scipy 1.14.1)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 43 ms / 2,000 ms | 
| コード長 | 2,035 bytes | 
| コンパイル時間 | 570 ms | 
| コンパイル使用メモリ | 12,032 KB | 
| 実行使用メモリ | 10,368 KB | 
| 最終ジャッジ日時 | 2025-04-20 03:50:04 | 
| 合計ジャッジ時間 | 2,137 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge4 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 16 | 
ソースコード
# coding: utf-8
import sys
def solve():
    # 標準入力から N と S を受け取る
    # Read N and S from standard input
    n = int(sys.stdin.readline())
    s = sys.stdin.readline().strip()
    # 条件を満たす部分文字列の数をカウントする変数
    # Variable to count the number of subsequences that meet the criteria
    count = 0
    # 5つのインデックスを選ぶための5重ループ
    # i1 < i2 < i3 < i4 < i5 となるように選ぶ
    # 5 nested loops to choose 5 indices such that i1 < i2 < i3 < i4 < i5
    for i1 in range(n):
        for i2 in range(i1 + 1, n):
            for i3 in range(i2 + 1, n):
                for i4 in range(i3 + 1, n):
                    for i5 in range(i4 + 1, n):
                        # 選ばれた5文字
                        # The 5 chosen characters
                        c1 = s[i1]
                        c2 = s[i2]
                        c3 = s[i3]
                        c4 = s[i4]
                        c5 = s[i5]
                        # CPCTF的条件のチェック
                        # Check CPCTF conditions:
                        # 1. 1st and 3rd characters are the same
                        # 2. All other pairs of characters (among 1st/3rd, 2nd, 4th, 5th) are different
                        if (c1 == c3 and      # S[i1] == S[i3]
                            c1 != c2 and      # S[i1] != S[i2]
                            c1 != c4 and      # S[i1] != S[i4]
                            c1 != c5 and      # S[i1] != S[i5]
                            c2 != c4 and      # S[i2] != S[i4]
                            c2 != c5 and      # S[i2] != S[i5]
                            c4 != c5):        # S[i4] != S[i5]
                            # 条件を満たせばカウントを増やす
                            # If conditions are met, increment the count
                            count += 1
    # 結果を出力
    # Print the result
    print(count)
# 関数を実行
# Execute the function
solve()
            
            
            
        
            
kakur41