結果
| 問題 | 
                            No.2636 No Waiting in Vain
                             | 
                    
| ユーザー | 
                             titia
                         | 
                    
| 提出日時 | 2025-03-20 02:20:25 | 
| 言語 | Python3  (3.13.1 + numpy 2.2.1 + scipy 1.14.1)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 479 ms / 2,000 ms | 
| コード長 | 676 bytes | 
| コンパイル時間 | 457 ms | 
| コンパイル使用メモリ | 12,416 KB | 
| 実行使用メモリ | 42,308 KB | 
| 最終ジャッジ日時 | 2025-03-20 02:20:45 | 
| 合計ジャッジ時間 | 18,838 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge3 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 44 | 
ソースコード
import sys
input = sys.stdin.readline
N,K=map(int,input().split())
S=input().strip()
mod=998244353
FACT=[1]
for i in range(1,4*10**5+1):
    FACT.append(FACT[-1]*i%mod)
FACT_INV=[pow(FACT[-1],mod-2,mod)]
for i in range(4*10**5,0,-1):
    FACT_INV.append(FACT_INV[-1]*i%mod)
FACT_INV.reverse()
def Combi(a,b):
    if 0<=b<=a:
        return FACT[a]*FACT_INV[b]%mod*FACT_INV[a-b]%mod
    else:
        return 0
count=0
yasumi=0
for i in range(N):
    if S[i]=="N":
        yasumi+=1
        if i-1>=0 and S[i-1]=="C":
            pass
        else:
            count+=1
MAX=yasumi-K
ANS=0
for i in range(1,MAX+1):
    ANS=ANS+Combi(count,i)
    ANS%=mod
print(ANS)
            
            
            
        
            
titia