{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/cpret-a-dataset-benchmark-and-model-for","title":"CPRet: A Dataset, Benchmark, and Model for Retrieval in Competitive Programming","arxiv_id":"2505.12925","date":"2025-05-19","proceeding":null,"authors":["Han Deng","Yuan Meng","Shixiang Tang","Wanli Ouyang","Xinzhu Ma"],"abstract":"Competitive programming benchmarks are widely used in scenarios such as programming contests and large language model assessments. However, the growing presence of duplicate or highly similar problems raises concerns not only about competition fairness, but also about the validity of competitive programming as a benchmark for model evaluation. In this paper, we propose a new problem -- similar question retrieval -- to address this issue. Due to the lack of both data and models, solving this problem is challenging. To this end, we introduce CPRet, a retrieval-oriented benchmark suite for competitive programming, covering four retrieval tasks: two code-centric (i.e., Text-to-Code and Code-to-Code) and two newly proposed problem-centric tasks (i.e., Problem-to-Duplicate and Simplified-to-Full), built from a combination of automatically crawled problem-solution data and manually curated annotations. Our contribution includes both high-quality training data and temporally separated test sets for reliable evaluation. In addition, we develop two task-specialized retrievers based on this dataset: CPRetriever-Code, trained with a novel Group-InfoNCE loss for problem-code alignment, and CPRetriever-Prob, fine-tuned for identifying problem-level similarity. Both models achieve strong results and are open-sourced for local use. Finally, we analyze LiveCodeBench and find that high-similarity problems inflate model pass rates and reduce differentiation, underscoring the need for similarity-aware evaluation in future benchmarks. Code and data are available at: https://github.com/coldchair/CPRet","url_abs":"https://arxiv.org/abs/2505.12925v1","url_pdf":"https://arxiv.org/pdf/2505.12925v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"cpret-a-dataset-benchmark-and-model-for","repo_url":"https://github.com/coldchair/cpret","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"jax","reach":{"status":"ok"}}],"tasks":[{"task_slug":"fairness","task_name":"Fairness"},{"task_slug":"large-language-model","task_name":"Large Language Model"},{"task_slug":"retrieval","task_name":"Retrieval"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2505.12925","atlas_url":"https://app.syntology.ai/?focus=2505.12925","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2505.12925"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"deterministic:regex_extraction","url":"https://github.com/lexiforest/curl_cffi","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/unclecode/crawl4ai","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/coldchair/cpret","reach":{"status":"ok"}}],"summary":{"ran":9,"unverified":2},"by_repo_kind":{"found_in_text":{"samples":11,"ran":9,"repositories":2}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"9669a50ca25cddf8","entry":"bytes_to_hex","repo":"lexiforest/curl_cffi","repo_kind":"found_in_text","path":"curl_cffi/curl.py","file_url":"https://github.com/lexiforest/curl_cffi/blob/HEAD/curl_cffi/curl.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9669a50ca25cddf8"}},{"code_sha256_prefix":"99a7758c99fcc47d","entry":"calculate_batch_size","repo":"unclecode/crawl4ai","repo_kind":"found_in_text","path":"crawl4ai/model_loader.py","file_url":"https://github.com/unclecode/crawl4ai/blob/HEAD/crawl4ai/model_loader.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"99a7758c99fcc47d"}},{"code_sha256_prefix":"8cac0a862bf83a39","entry":"determine_print_spec","repo":"lexiforest/curl_cffi","repo_kind":"found_in_text","path":"curl_cffi/cli/output.py","file_url":"https://github.com/lexiforest/curl_cffi/blob/HEAD/curl_cffi/cli/output.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8cac0a862bf83a39"}},{"code_sha256_prefix":"5c8d701fb3651833","entry":"get_available_memory","repo":"unclecode/crawl4ai","repo_kind":"found_in_text","path":"crawl4ai/model_loader.py","file_url":"https://github.com/unclecode/crawl4ai/blob/HEAD/crawl4ai/model_loader.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"5c8d701fb3651833"}},{"code_sha256_prefix":"4c469c8cc18a0a56","entry":"is_blocked","repo":"unclecode/crawl4ai","repo_kind":"found_in_text","path":"crawl4ai/antibot_detector.py","file_url":"https://github.com/unclecode/crawl4ai/blob/HEAD/crawl4ai/antibot_detector.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4c469c8cc18a0a56"}},{"code_sha256_prefix":"a035ccc8ea9189ee","entry":"is_empty_value","repo":"unclecode/crawl4ai","repo_kind":"found_in_text","path":"crawl4ai/async_configs.py","file_url":"https://github.com/unclecode/crawl4ai/blob/HEAD/crawl4ai/async_configs.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a035ccc8ea9189ee"}},{"code_sha256_prefix":"6b0c83ffd8abd55c","entry":"parse_request_items","repo":"lexiforest/curl_cffi","repo_kind":"found_in_text","path":"curl_cffi/cli/parse.py","file_url":"https://github.com/lexiforest/curl_cffi/blob/HEAD/curl_cffi/cli/parse.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6b0c83ffd8abd55c"}},{"code_sha256_prefix":"9092bccbef30f7b3","entry":"process_url","repo":"lexiforest/curl_cffi","repo_kind":"found_in_text","path":"curl_cffi/cli/parse.py","file_url":"https://github.com/lexiforest/curl_cffi/blob/HEAD/curl_cffi/cli/parse.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9092bccbef30f7b3"}},{"code_sha256_prefix":"2ec152ff8b3aa899","entry":"set_model_device","repo":"unclecode/crawl4ai","repo_kind":"found_in_text","path":"crawl4ai/model_loader.py","file_url":"https://github.com/unclecode/crawl4ai/blob/HEAD/crawl4ai/model_loader.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2ec152ff8b3aa899"}},{"code_sha256_prefix":"500a790da96ce931","entry":"from_serializable_dict","repo":"unclecode/crawl4ai","repo_kind":"found_in_text","path":"crawl4ai/async_configs.py","file_url":"https://github.com/unclecode/crawl4ai/blob/HEAD/crawl4ai/async_configs.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"500a790da96ce931"}},{"code_sha256_prefix":"fb6814e51f39f7ea","entry":"to_serializable_dict","repo":"unclecode/crawl4ai","repo_kind":"found_in_text","path":"crawl4ai/async_configs.py","file_url":"https://github.com/unclecode/crawl4ai/blob/HEAD/crawl4ai/async_configs.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"fb6814e51f39f7ea"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}