概要
現在の _extract_input_format_and_samples の実装では、以下のinput_tagsとoutput_tagsの個数チェックが行われています。
if len(input_tags) != len(output_tags):
raise SampleDetectionError
このロジックは、パーサーが「全てのサンプルケースにおいて、入力タグと出力タグを過不足なく同じ数ずつ抽出できる」ことを前提としています。
しかし、ABC433 E のような問題では、HTML構造の都合上、入力タグと出力タグの取得数が一致しないケースがあります(例:出力例の中に複数のタグが含まれている、あるいは無関係なタグが誤検知されるなど)。またAHCコンテストでは"入力生成方法"というタグに関しても"入力"から始まっているので誤検知をしております。その結果、問題ページ自体は正常でサンプルもダウンロード可能であるにもかかわらず、SampleDetectionError が発生してしまいます。
再現手順
以下のコマンドを実行し、ABC433 E問題の生成を確認してください。
修正案
AHCでは"生成"で完全一致を確認することで対処できることを確認しました。
またABCコンテストの方ではいまだに解決策が見つけられておりません。
"生成"に関するpullrequestを送っておきます
概要
現在の
_extract_input_format_and_samplesの実装では、以下のinput_tagsとoutput_tagsの個数チェックが行われています。このロジックは、パーサーが「全てのサンプルケースにおいて、入力タグと出力タグを過不足なく同じ数ずつ抽出できる」ことを前提としています。
しかし、ABC433 E のような問題では、HTML構造の都合上、入力タグと出力タグの取得数が一致しないケースがあります(例:出力例の中に複数のタグが含まれている、あるいは無関係なタグが誤検知されるなど)。またAHCコンテストでは"入力生成方法"というタグに関しても"入力"から始まっているので誤検知をしております。その結果、問題ページ自体は正常でサンプルもダウンロード可能であるにもかかわらず、SampleDetectionError が発生してしまいます。
再現手順
以下のコマンドを実行し、ABC433 E問題の生成を確認してください。
修正案
AHCでは"生成"で完全一致を確認することで対処できることを確認しました。
またABCコンテストの方ではいまだに解決策が見つけられておりません。
"生成"に関するpullrequestを送っておきます