結果
問題 | 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))])