結果

問題 No.3061 Cut and Maximums
ユーザー qwewe
提出日時 2025-04-24 12:26:28
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 2,421 bytes
コンパイル時間 151 ms
コンパイル使用メモリ 82,584 KB
実行使用メモリ 54,308 KB
最終ジャッジ日時 2025-04-24 12:27:38
合計ジャッジ時間 4,639 ms
ジャッジサーバーID
(参考情報)
judge3 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample WA * 3
other WA * 33
権限があれば一括ダウンロードができます

ソースコード

diff #

S = input().strip()
n = len(S)
found = False

for start in range(n):
    for end in range(start + 1, n):
        # Check if start and end are lowercase letters
        if not S[start].islower() or not S[end].islower():
            continue
        
        K = set()  # Characters to keep (odd positions in the substring)
        R = set()   # Characters to replace (even positions in substring and outside)
        valid_sub = True
        
        # Process the substring from start to end (inclusive)
        for i in range(start, end + 1):
            pos_in_sub = (i - start) + 1  # 1-based position in the substring
            if pos_in_sub % 2 == 1:  # Odd position in the substring
                if S[i] == ' ':
                    valid_sub = False
                    break
                c = S[i]
                if c in R:
                    valid_sub = False
                    break
                K.add(c)
            else:  # Even position in the substring
                if S[i] != ' ':
                    R.add(S[i])
        
        if not valid_sub:
            continue
        
        # Add characters outside the substring to R if they are letters
        for i in range(n):
            if i < start or i > end:
                if S[i] != ' ':
                    R.add(S[i])
        
        # Check if K and R are disjoint
        if K & R:
            continue
        
        # Check all occurrences of K are within the substring's odd positions
        valid_k = True
        for c in K:
            for i in range(n):
                if (i < start or i > end) and S[i] == c:
                    valid_k = False
                    break
                if start <= i <= end:
                    pos_in_sub = (i - start) + 1
                    if pos_in_sub % 2 == 0 and S[i] == c:
                        valid_k = False
                        break
            if not valid_k:
                break
        if not valid_k:
            continue
        
        # Check all letters outside the substring are in R
        valid_outside = True
        for i in range(n):
            if i < start or i > end:
                if S[i] != ' ' and S[i] not in R:
                    valid_outside = False
                    break
        if not valid_outside:
            continue
        
        found = True
        break
    if found:
        break

print("Yes" if found else "NO")
0