結果
問題 |
No.8068 CTFっぽいの
|
ユーザー |
👑 |
提出日時 | 2023-09-18 14:49:22 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 31 ms / 1,000 ms |
コード長 | 2,612 bytes |
コンパイル時間 | 76 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 10,752 KB |
最終ジャッジ日時 | 2024-07-05 05:34:40 |
合計ジャッジ時間 | 2,108 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 11 WA * 1 |
コンパイルメッセージ
Main.py:65: SyntaxWarning: invalid decimal literal print(["NO","YES"][any(len({S[j]for j in range(i,i+9)})>8for i in range(L))])
ソースコード
# 解説をbase64デコードすると問題文解読のヒントと # (1) 連続する9文字が独立かどうか調べる。 # (2) 条件分岐を禁止するコード制限がある。 # という情報が得られますが、問題文読解に関しては # LINUXコマンドを要求するようなので無視して # (1),(2)だけ考えます。YES/NOかYes/Noその他かは # 提出デバッグで判定します。古い問題なので傾向的に # まずはYES/NOで投げます。 # S=input() # L=len(S)-(9-1) # print(["YES","NO"][len({S[i:i+9]for i in range(L)})<L]) # WAでしたがいくつかACが取れたのでYES/NOで正しいようです。 # WAになった理由を考えます。 # intに投げてみてREが出るかどうかでマルチテストケースを判定します。 # T=int(input()) # REが出たのでマルチテストケースではなさそうです。 # ここで(1)が # (1)' 「連続する9文字のなす文字列」同士の比較 # ではなく # (1)'' 「連続する9文字」同士の比較 # であり可能性を検討します。 # S=input() # L=len(S)-(9-1) # print(["NO","YES"][all(len({S[j]for j in range(i,i+9)})>8for i in range(L))]) # WAでしたがいくつかACが取れました。 # マルチテストケースではないと判断していましたが、 # もしかして文字列取得位置を入力で与えるタイプかも? # 念のためYESのみを返すコードとNOのみを返すコードを提出して # マルチテストケースの有無を再確認。 # print("YES") # AC:WA=5:7でした。 # print("NO") # AC:WA=6:6でした。数が合いません。 # どうも最後のケースのみ正解出力はYESでもNOでもないみたい。 # コンテスト語なのでテストケース名がevil始まりであることが分かってしまったため # 気にしないことにする。(evil始まりのケースは提出の正解状況に影響しないので) # というわけでYESかNOが正解で、マルチテストケースではないことが確定。 # allをanyに変えた提出を検討してみる。 # S=input() # L=len(S)-(9-1) # print(["YES","NO"][any(len({S[j]for j in range(i,i+9)})<9for i in range(L))]) # うっかり不等号を逆にしてしまった。これはドモルガンだ。 # これでは意味がないのでもう一度。 # S=input() # L=len(S)-(9-1) # print(["YES","NO"][any(len({S[j]for j in range(i,i+9)})>8for i in range(L))]) # 全てWAが出た。勝ち。 S=input() L=len(S)-(9-1) print(["NO","YES"][any(len({S[j]for j in range(i,i+9)})>8for i in range(L))])