結果

問題 No.3061 Cut and Maximums
ユーザー qwewe
提出日時 2025-05-14 12:48:06
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 1,584 bytes
コンパイル時間 211 ms
コンパイル使用メモリ 82,572 KB
実行使用メモリ 54,480 KB
最終ジャッジ日時 2025-05-14 12:49:40
合計ジャッジ時間 3,889 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample WA * 3
other WA * 33
権限があれば一括ダウンロードができます

ソースコード

diff #

def main():
    S = input().strip()
    letters = set(c for c in S if c != ' ')
    distinct_letters = list(letters)
    n = len(distinct_letters)
    
    # Function to check if a subset K is valid
    def is_valid(K):
        transformed = []
        for c in S:
            if c == ' ':
                transformed.append(' ')
            else:
                if c in K:
                    transformed.append(c)
                else:
                    transformed.append(' ')
        # Trim leading and trailing spaces
        s = ''.join(transformed)
        trimmed = s.strip()
        if len(trimmed) < 2:
            return False
        # Check pattern
        for i in range(len(trimmed)):
            pos = i + 1  # 1-based
            if pos % 2 == 1:  # odd position, must be letter
                if trimmed[i] == ' ':
                    return False
            else:  # even position, must be space
                if trimmed[i] != ' ':
                    return False
        return True
    
    # Iterate over all possible subsets of distinct_letters
    from itertools import combinations
    # Generate all possible subsets (non-empty)
    found = False
    for k in range(1, n+1):
        for subset in combinations(distinct_letters, k):
            K = set(subset)
            if is_valid(K):
                found = True
                print("Yes")
                return
    # Also check the full set
    if is_valid(set(distinct_letters)):
        found = True
        print("Yes")
        return
    print("NO")

if __name__ == "__main__":
    main()
0