{ "format_version": 1, "model": "unsloth/Llama-3.2-1B-Instruct-GRPO", "timestamp": "2026-04-25T08:30:03.894494", "results": [ { "problem_id": "bug_001", "difficulty": "easy", "title": "Off-by-one in list index", "n_iterations": 1, "final_reward": 100.0, "best_reward": 100.0, "iter1_reward": 100.0, "best_iter": 1, "best_code": "def get_last(lst):\n return lst[-1]", "reward_gain": 0.0, "tests_passed_final": 4, "tests_total": 4, "solved": true, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def get_last(lst):\n return lst[-1]", "method": "local_llm" }, "reward": { "total": 100.0, "test_score": 30.0, "fix_quality": 20.0, "format_score": 12.0, "speed_score": 10.0, "safety_score": 10.0, "improvement_score": 15.0, "anti_hack_penalty": 0.0, "process_bonus": 3.0 }, "done": true, "info": { "solved": true, "safety_violations": [], "anti_hack_failed": false } } ] }, { "problem_id": "bug_002", "difficulty": "easy", "title": "Wrong comparison operator (> instead of >=)", "n_iterations": 1, "final_reward": 100.0, "best_reward": 100.0, "iter1_reward": 100.0, "best_iter": 1, "best_code": "def is_passing(score):\n return score >= 50", "reward_gain": 0.0, "tests_passed_final": 4, "tests_total": 4, "solved": true, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def is_passing(score):\n return score >= 50", "method": "local_llm" }, "reward": { "total": 100.0, "test_score": 30.0, "fix_quality": 20.0, "format_score": 12.0, "speed_score": 10.0, "safety_score": 10.0, "improvement_score": 15.0, "anti_hack_penalty": 0.0, "process_bonus": 3.0 }, "done": true, "info": { "solved": true, "safety_violations": [], "anti_hack_failed": false } } ] }, { "problem_id": "bug_003", "difficulty": "easy", "title": "Missing return statement", "n_iterations": 1, "final_reward": 100.0, "best_reward": 100.0, "iter1_reward": 100.0, "best_iter": 1, "best_code": "def square(n):\n result = n ** 2\n return result", "reward_gain": 0.0, "tests_passed_final": 4, "tests_total": 4, "solved": true, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def square(n):\n result = n ** 2\n return result", "method": "local_llm" }, "reward": { "total": 100.0, "test_score": 30.0, "fix_quality": 20.0, "format_score": 12.0, "speed_score": 10.0, "safety_score": 10.0, "improvement_score": 15.0, "anti_hack_penalty": 0.0, "process_bonus": 3.0 }, "done": true, "info": { "solved": true, "safety_violations": [], "anti_hack_failed": false } } ] }, { "problem_id": "bug_004", "difficulty": "easy", "title": "Wrong variable name used", "n_iterations": 1, "final_reward": 90.0, "best_reward": 90.0, "iter1_reward": 90.0, "best_iter": 1, "best_code": "def celsius_to_fahrenheit(c):\n f = (c * 9 / 5) + 32\n return f", "reward_gain": 0.0, "tests_passed_final": 4, "tests_total": 4, "solved": true, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def celsius_to_fahrenheit(c):\n f = (c * 9 / 5) + 32\n return f", "method": "local_llm" }, "reward": { "total": 90.0, "test_score": 30.0, "fix_quality": 10.0, "format_score": 12.0, "speed_score": 10.0, "safety_score": 10.0, "improvement_score": 15.0, "anti_hack_penalty": 0.0, "process_bonus": 3.0 }, "done": true, "info": { "solved": true, "safety_violations": [], "anti_hack_failed": false } } ] }, { "problem_id": "bug_005", "difficulty": "easy", "title": "Wrong string method: split vs strip", "n_iterations": 3, "final_reward": 45.0, "best_reward": 45.0, "iter1_reward": 12.0, "best_iter": 2, "best_code": "def clean(s):\n return [i for i in s.split() if i!= '']", "reward_gain": 33.0, "tests_passed_final": 0, "tests_total": 4, "solved": false, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def clean(s):\n return s.split()", "method": "local_llm" }, "reward": { "total": 12.0, "test_score": 0.0, "fix_quality": -10.0, "format_score": 12.0, "speed_score": 0.0, "safety_score": 10.0, "improvement_score": 0.0, "anti_hack_penalty": 0.0, "process_bonus": 0.0 }, "done": false, "info": { "solved": false, "safety_violations": [], "anti_hack_failed": false } }, { "iteration": 2, "fix_result": { "fixed_code": "def clean(s):\n return [i for i in s.split() if i!= '']", "method": "local_llm" }, "reward": { "total": 45.0, "test_score": 0.0, "fix_quality": 20.0, "format_score": 12.0, "speed_score": 0.0, "safety_score": 10.0, "improvement_score": 0.0, "anti_hack_penalty": 0.0, "process_bonus": 3.0 }, "done": false, "info": { "solved": false, "safety_violations": [], "anti_hack_failed": false } }, { "iteration": 3, "fix_result": { "fixed_code": "def clean(s):\n return [i for i in s.split() if i!= '']", "method": "local_llm" }, "reward": { "total": 45.0, "test_score": 0.0, "fix_quality": 20.0, "format_score": 12.0, "speed_score": 0.0, "safety_score": 10.0, "improvement_score": 0.0, "anti_hack_penalty": 0.0, "process_bonus": 3.0 }, "done": true, "info": { "solved": false, "safety_violations": [], "anti_hack_failed": false } } ] }, { "problem_id": "bug_006", "difficulty": "easy", "title": "Missing -1 in length calculation", "n_iterations": 1, "final_reward": 100.0, "best_reward": 100.0, "iter1_reward": 100.0, "best_iter": 1, "best_code": "def second_to_last(lst):\n return lst[-2]", "reward_gain": 0.0, "tests_passed_final": 4, "tests_total": 4, "solved": true, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def second_to_last(lst):\n return lst[-2]", "method": "local_llm" }, "reward": { "total": 100.0, "test_score": 30.0, "fix_quality": 20.0, "format_score": 12.0, "speed_score": 10.0, "safety_score": 10.0, "improvement_score": 15.0, "anti_hack_penalty": 0.0, "process_bonus": 3.0 }, "done": true, "info": { "solved": true, "safety_violations": [], "anti_hack_failed": false } } ] }, { "problem_id": "bug_007", "difficulty": "easy", "title": "Wrong list method: append vs extend", "n_iterations": 3, "final_reward": 45.0, "best_reward": 45.0, "iter1_reward": 45.0, "best_iter": 1, "best_code": "def combine(base, items):\n base = base or []\n base.append(items)\n return base", "reward_gain": 0.0, "tests_passed_final": 0, "tests_total": 4, "solved": false, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def combine(base, items):\n base = base or []\n base.append(items)\n return base", "method": "local_llm" }, "reward": { "total": 45.0, "test_score": 0.0, "fix_quality": 20.0, "format_score": 12.0, "speed_score": 0.0, "safety_score": 10.0, "improvement_score": 0.0, "anti_hack_penalty": 0.0, "process_bonus": 3.0 }, "done": false, "info": { "solved": false, "safety_violations": [], "anti_hack_failed": false } }, { "iteration": 2, "fix_result": { "fixed_code": "def combine(base, items):\n base = base or []\n base.append(items)\n base.sort()\n return base", "method": "local_llm" }, "reward": { "total": 45.0, "test_score": 0.0, "fix_quality": 20.0, "format_score": 12.0, "speed_score": 0.0, "safety_score": 10.0, "improvement_score": 0.0, "anti_hack_penalty": 0.0, "process_bonus": 3.0 }, "done": false, "info": { "solved": false, "safety_violations": [], "anti_hack_failed": false } }, { "iteration": 3, "fix_result": { "fixed_code": "def combine(base, items):\n base = base or []\n base.append(items)\n base.sort(key=lambda x: x[0])\n return base", "method": "local_llm" }, "reward": { "total": 45.0, "test_score": 0.0, "fix_quality": 20.0, "format_score": 12.0, "speed_score": 0.0, "safety_score": 10.0, "improvement_score": 0.0, "anti_hack_penalty": 0.0, "process_bonus": 3.0 }, "done": true, "info": { "solved": false, "safety_violations": [], "anti_hack_failed": false } } ] }, { "problem_id": "bug_008", "difficulty": "easy", "title": "Comparing to None with == instead of is", "n_iterations": 1, "final_reward": 100.0, "best_reward": 100.0, "iter1_reward": 100.0, "best_iter": 1, "best_code": "def is_empty(val):\n return val is None", "reward_gain": 0.0, "tests_passed_final": 4, "tests_total": 4, "solved": true, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def is_empty(val):\n return val is None", "method": "local_llm" }, "reward": { "total": 100.0, "test_score": 30.0, "fix_quality": 20.0, "format_score": 12.0, "speed_score": 10.0, "safety_score": 10.0, "improvement_score": 15.0, "anti_hack_penalty": 0.0, "process_bonus": 3.0 }, "done": true, "info": { "solved": true, "safety_violations": [], "anti_hack_failed": false } } ] }, { "problem_id": "bug_009", "difficulty": "easy", "title": "Integer division instead of float division", "n_iterations": 1, "final_reward": 100.0, "best_reward": 100.0, "iter1_reward": 100.0, "best_iter": 1, "best_code": "def average(nums):\n return sum(nums) / len(nums)", "reward_gain": 0.0, "tests_passed_final": 4, "tests_total": 4, "solved": true, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def average(nums):\n return sum(nums) / len(nums)", "method": "local_llm" }, "reward": { "total": 100.0, "test_score": 30.0, "fix_quality": 20.0, "format_score": 12.0, "speed_score": 10.0, "safety_score": 10.0, "improvement_score": 15.0, "anti_hack_penalty": 0.0, "process_bonus": 3.0 }, "done": true, "info": { "solved": true, "safety_violations": [], "anti_hack_failed": false } } ] }, { "problem_id": "bug_010", "difficulty": "easy", "title": "Wrong list index: -1 vs 0", "n_iterations": 1, "final_reward": 100.0, "best_reward": 100.0, "iter1_reward": 100.0, "best_iter": 1, "best_code": "def get_first(lst):\n return lst[0]", "reward_gain": 0.0, "tests_passed_final": 4, "tests_total": 4, "solved": true, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def get_first(lst):\n return lst[0]", "method": "local_llm" }, "reward": { "total": 100.0, "test_score": 30.0, "fix_quality": 20.0, "format_score": 12.0, "speed_score": 10.0, "safety_score": 10.0, "improvement_score": 15.0, "anti_hack_penalty": 0.0, "process_bonus": 3.0 }, "done": true, "info": { "solved": true, "safety_violations": [], "anti_hack_failed": false } } ] }, { "problem_id": "bug_011", "difficulty": "medium", "title": "Wrong loop termination condition", "n_iterations": 1, "final_reward": 100.0, "best_reward": 100.0, "iter1_reward": 100.0, "best_iter": 1, "best_code": "def countdown_sum(n):\n total = 0\n while n >= 0:\n total += n\n n -= 1\n return total", "reward_gain": 0.0, "tests_passed_final": 4, "tests_total": 4, "solved": true, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def countdown_sum(n):\n total = 0\n while n >= 0:\n total += n\n n -= 1\n return total", "method": "local_llm" }, "reward": { "total": 100.0, "test_score": 30.0, "fix_quality": 20.0, "format_score": 12.0, "speed_score": 10.0, "safety_score": 10.0, "improvement_score": 15.0, "anti_hack_penalty": 0.0, "process_bonus": 3.0 }, "done": true, "info": { "solved": true, "safety_violations": [], "anti_hack_failed": false } } ] }, { "problem_id": "bug_012", "difficulty": "medium", "title": "Wrong recursion base case value", "n_iterations": 1, "final_reward": 70.0, "best_reward": 70.0, "iter1_reward": 70.0, "best_iter": 1, "best_code": "def factorial(n):\n if n == 0:\n return 1\n return n * factorial(n - 1)", "reward_gain": 0.0, "tests_passed_final": 4, "tests_total": 4, "solved": true, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def factorial(n):\n if n == 0:\n return 1\n return n * factorial(n - 1)", "method": "local_llm" }, "reward": { "total": 70.0, "test_score": 30.0, "fix_quality": 20.0, "format_score": 12.0, "speed_score": 10.0, "safety_score": 10.0, "improvement_score": 15.0, "anti_hack_penalty": -30.0, "process_bonus": 3.0 }, "done": true, "info": { "solved": true, "safety_violations": [], "anti_hack_failed": true } } ] }, { "problem_id": "bug_013", "difficulty": "medium", "title": "Wrong sort order (missing reverse=True)", "n_iterations": 1, "final_reward": 100.0, "best_reward": 100.0, "iter1_reward": 100.0, "best_iter": 1, "best_code": "def sort_desc(lst):\n return sorted(lst, reverse=True)", "reward_gain": 0.0, "tests_passed_final": 4, "tests_total": 4, "solved": true, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def sort_desc(lst):\n return sorted(lst, reverse=True)", "method": "local_llm" }, "reward": { "total": 100.0, "test_score": 30.0, "fix_quality": 20.0, "format_score": 12.0, "speed_score": 10.0, "safety_score": 10.0, "improvement_score": 15.0, "anti_hack_penalty": 0.0, "process_bonus": 3.0 }, "done": true, "info": { "solved": true, "safety_violations": [], "anti_hack_failed": false } } ] }, { "problem_id": "bug_014", "difficulty": "medium", "title": "Missing edge case for empty list", "n_iterations": 1, "final_reward": 70.0, "best_reward": 70.0, "iter1_reward": 70.0, "best_iter": 1, "best_code": "def safe_max(lst):\n if not lst:\n return None\n return max(lst)", "reward_gain": 0.0, "tests_passed_final": 4, "tests_total": 4, "solved": true, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def safe_max(lst):\n if not lst:\n return None\n return max(lst)", "method": "local_llm" }, "reward": { "total": 70.0, "test_score": 30.0, "fix_quality": 20.0, "format_score": 12.0, "speed_score": 10.0, "safety_score": 10.0, "improvement_score": 15.0, "anti_hack_penalty": -30.0, "process_bonus": 3.0 }, "done": true, "info": { "solved": true, "safety_violations": [], "anti_hack_failed": true } } ] }, { "problem_id": "bug_015", "difficulty": "medium", "title": "Wrong string format (% vs .format)", "n_iterations": 1, "final_reward": 97.0, "best_reward": 97.0, "iter1_reward": 97.0, "best_iter": 1, "best_code": "def greet(name, age):\n return 'Hello %s, you are %d years old' % (name, age)", "reward_gain": 0.0, "tests_passed_final": 4, "tests_total": 4, "solved": true, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def greet(name, age):\n return 'Hello %s, you are %d years old' % (name, age)", "method": "local_llm" }, "reward": { "total": 97.0, "test_score": 30.0, "fix_quality": 20.0, "format_score": 12.0, "speed_score": 10.0, "safety_score": 10.0, "improvement_score": 15.0, "anti_hack_penalty": 0.0, "process_bonus": 0.0 }, "done": true, "info": { "solved": true, "safety_violations": [], "anti_hack_failed": false } } ] }, { "problem_id": "bug_016", "difficulty": "medium", "title": "Wrong dictionary key access", "n_iterations": 1, "final_reward": 60.0, "best_reward": 60.0, "iter1_reward": 60.0, "best_iter": 1, "best_code": "def get_value(d, key):\n if key in d:\n return d[key]\n else:\n return None", "reward_gain": 0.0, "tests_passed_final": 4, "tests_total": 4, "solved": true, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def get_value(d, key):\n if key in d:\n return d[key]\n else:\n return None", "method": "local_llm" }, "reward": { "total": 60.0, "test_score": 30.0, "fix_quality": 10.0, "format_score": 12.0, "speed_score": 10.0, "safety_score": 10.0, "improvement_score": 15.0, "anti_hack_penalty": -30.0, "process_bonus": 3.0 }, "done": true, "info": { "solved": true, "safety_violations": [], "anti_hack_failed": true } } ] }, { "problem_id": "bug_017", "difficulty": "medium", "title": "Wrong boolean logic (and vs or)", "n_iterations": 1, "final_reward": 100.0, "best_reward": 100.0, "iter1_reward": 100.0, "best_iter": 1, "best_code": "def both_true(a, b):\n return a and b", "reward_gain": 0.0, "tests_passed_final": 4, "tests_total": 4, "solved": true, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def both_true(a, b):\n return a and b", "method": "local_llm" }, "reward": { "total": 100.0, "test_score": 30.0, "fix_quality": 20.0, "format_score": 12.0, "speed_score": 10.0, "safety_score": 10.0, "improvement_score": 15.0, "anti_hack_penalty": 0.0, "process_bonus": 3.0 }, "done": true, "info": { "solved": true, "safety_violations": [], "anti_hack_failed": false } } ] }, { "problem_id": "bug_018", "difficulty": "medium", "title": "Wrong range bounds (range(n) vs range(n+1))", "n_iterations": 1, "final_reward": 100.0, "best_reward": 100.0, "iter1_reward": 100.0, "best_iter": 1, "best_code": "def sum_to_n(n):\n return sum(range(1, n+1))", "reward_gain": 0.0, "tests_passed_final": 4, "tests_total": 4, "solved": true, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def sum_to_n(n):\n return sum(range(1, n+1))", "method": "local_llm" }, "reward": { "total": 100.0, "test_score": 30.0, "fix_quality": 20.0, "format_score": 12.0, "speed_score": 10.0, "safety_score": 10.0, "improvement_score": 15.0, "anti_hack_penalty": 0.0, "process_bonus": 3.0 }, "done": true, "info": { "solved": true, "safety_violations": [], "anti_hack_failed": false } } ] }, { "problem_id": "bug_019", "difficulty": "medium", "title": "Missing int() type conversion", "n_iterations": 3, "final_reward": 42.0, "best_reward": 42.0, "iter1_reward": 42.0, "best_iter": 1, "best_code": "def double_str(s):\n return''.join([s] * 2)", "reward_gain": 0.0, "tests_passed_final": 0, "tests_total": 4, "solved": false, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def double_str(s):\n return''.join([s] * 2)", "method": "local_llm" }, "reward": { "total": 42.0, "test_score": 0.0, "fix_quality": 20.0, "format_score": 12.0, "speed_score": 0.0, "safety_score": 10.0, "improvement_score": 0.0, "anti_hack_penalty": 0.0, "process_bonus": 0.0 }, "done": false, "info": { "solved": false, "safety_violations": [], "anti_hack_failed": false } }, { "iteration": 2, "fix_result": { "fixed_code": "def double_str(s):\n return s + s", "method": "local_llm" }, "reward": { "total": 42.0, "test_score": 0.0, "fix_quality": 20.0, "format_score": 12.0, "speed_score": 0.0, "safety_score": 10.0, "improvement_score": 0.0, "anti_hack_penalty": 0.0, "process_bonus": 0.0 }, "done": false, "info": { "solved": false, "safety_violations": [], "anti_hack_failed": false } }, { "iteration": 3, "fix_result": { "fixed_code": "def double_str(s):\n return s +'' + s", "method": "local_llm" }, "reward": { "total": 42.0, "test_score": 0.0, "fix_quality": 20.0, "format_score": 12.0, "speed_score": 0.0, "safety_score": 10.0, "improvement_score": 0.0, "anti_hack_penalty": 0.0, "process_bonus": 0.0 }, "done": true, "info": { "solved": false, "safety_violations": [], "anti_hack_failed": false } } ] }, { "problem_id": "bug_020", "difficulty": "medium", "title": "Wrong list slicing ([1:] vs [:1])", "n_iterations": 1, "final_reward": 100.0, "best_reward": 100.0, "iter1_reward": 100.0, "best_iter": 1, "best_code": "def tail(lst):\n return lst[1:]", "reward_gain": 0.0, "tests_passed_final": 4, "tests_total": 4, "solved": true, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def tail(lst):\n return lst[1:]", "method": "local_llm" }, "reward": { "total": 100.0, "test_score": 30.0, "fix_quality": 20.0, "format_score": 12.0, "speed_score": 10.0, "safety_score": 10.0, "improvement_score": 15.0, "anti_hack_penalty": 0.0, "process_bonus": 3.0 }, "done": true, "info": { "solved": true, "safety_violations": [], "anti_hack_failed": false } } ] }, { "problem_id": "bug_021", "difficulty": "hard", "title": "Binary search off-by-one in mid update", "n_iterations": 1, "final_reward": 60.0, "best_reward": 60.0, "iter1_reward": 60.0, "best_iter": 1, "best_code": "def binary_search(arr, target):\n lo, hi = 0, len(arr) - 1\n while lo <= hi:\n mid = (lo + hi) // 2\n if arr[mid] == target:\n return mid\n elif arr[mid] < target:\n lo = mid + 1\n else:\n hi = mid - 1\n return -1", "reward_gain": 0.0, "tests_passed_final": 4, "tests_total": 4, "solved": true, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def binary_search(arr, target):\n lo, hi = 0, len(arr) - 1\n while lo <= hi:\n mid = (lo + hi) // 2\n if arr[mid] == target:\n return mid\n elif arr[mid] < target:\n lo = mid + 1\n else:\n hi = mid - 1\n return -1", "method": "local_llm" }, "reward": { "total": 60.0, "test_score": 30.0, "fix_quality": 10.0, "format_score": 12.0, "speed_score": 10.0, "safety_score": 10.0, "improvement_score": 15.0, "anti_hack_penalty": -30.0, "process_bonus": 3.0 }, "done": true, "info": { "solved": true, "safety_violations": [], "anti_hack_failed": true } } ] }, { "problem_id": "bug_022", "difficulty": "hard", "title": "Wrong DP state transition (Fibonacci)", "n_iterations": 3, "final_reward": 20.0, "best_reward": 35.0, "iter1_reward": 35.0, "best_iter": 1, "best_code": "def fib_dp(n):\n if n <= 1:\n return 1\n dp = [0] * (n + 1)\n dp[1] = 1\n for i in range(2, n + 1):\n dp[i] = dp[i - 1] + dp[i - 2]\n return dp[n]", "reward_gain": 0.0, "tests_passed_final": 3, "tests_total": 4, "solved": false, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def fib_dp(n):\n if n <= 1:\n return 1\n dp = [0] * (n + 1)\n dp[1] = 1\n for i in range(2, n + 1):\n dp[i] = dp[i - 1] + dp[i - 2]\n return dp[n]", "method": "local_llm" }, "reward": { "total": 35.0, "test_score": 15.0, "fix_quality": 10.0, "format_score": 12.0, "speed_score": 0.0, "safety_score": 10.0, "improvement_score": 15.0, "anti_hack_penalty": -30.0, "process_bonus": 3.0 }, "done": false, "info": { "solved": false, "safety_violations": [], "anti_hack_failed": true } }, { "iteration": 2, "fix_result": { "fixed_code": "def fib_dp(n):\n if n <= 1:\n return 1\n dp = [0] * (n + 1)\n dp[1] = 1\n dp[2] = 1\n for i in range(3, n + 1):\n dp[i] = dp[i - 1] + dp[i - 2]\n return dp[n]", "method": "local_llm" }, "reward": { "total": 20.0, "test_score": 15.0, "fix_quality": 10.0, "format_score": 12.0, "speed_score": 0.0, "safety_score": 10.0, "improvement_score": 0.0, "anti_hack_penalty": -30.0, "process_bonus": 3.0 }, "done": false, "info": { "solved": false, "safety_violations": [], "anti_hack_failed": true } }, { "iteration": 3, "fix_result": { "fixed_code": "def fib_dp(n):\n if n <= 1:\n return 1\n dp = [0] * (n + 1)\n dp[1] = 1\n dp[2] = 1\n for i in range(3, n + 1):\n dp[i] = dp[i - 1] + dp[i - 2]\n return dp[n]", "method": "local_llm" }, "reward": { "total": 20.0, "test_score": 15.0, "fix_quality": 10.0, "format_score": 12.0, "speed_score": 0.0, "safety_score": 10.0, "improvement_score": 0.0, "anti_hack_penalty": -30.0, "process_bonus": 3.0 }, "done": true, "info": { "solved": false, "safety_violations": [], "anti_hack_failed": true } } ] }, { "problem_id": "bug_023", "difficulty": "hard", "title": "Wrong graph traversal: visited check in wrong place", "n_iterations": 1, "final_reward": 97.0, "best_reward": 97.0, "iter1_reward": 97.0, "best_iter": 1, "best_code": "from collections import deque\n\ndef bfs_count(graph, start):\n visited = set()\n queue = deque([start])\n count = 0\n while queue:\n node = queue.popleft()\n if node in visited:\n continue\n visited.add(node)\n count += 1\n for nb in graph.get(node, []):\n queue.append(nb)\n return count", "reward_gain": 0.0, "tests_passed_final": 4, "tests_total": 4, "solved": true, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "from collections import deque\n\ndef bfs_count(graph, start):\n visited = set()\n queue = deque([start])\n count = 0\n while queue:\n node = queue.popleft()\n if node in visited:\n continue\n visited.add(node)\n count += 1\n for nb in graph.get(node, []):\n queue.append(nb)\n return count", "method": "local_llm" }, "reward": { "total": 97.0, "test_score": 30.0, "fix_quality": 20.0, "format_score": 12.0, "speed_score": 10.0, "safety_score": 10.0, "improvement_score": 15.0, "anti_hack_penalty": 0.0, "process_bonus": 0.0 }, "done": true, "info": { "solved": true, "safety_violations": [], "anti_hack_failed": false } } ] }, { "problem_id": "bug_024", "difficulty": "hard", "title": "Missing memoization causing exponential recursion", "n_iterations": 3, "final_reward": 10.0, "best_reward": 10.0, "iter1_reward": 10.0, "best_iter": 1, "best_code": "def fib_memo(n, memo={}):\n if n <= 1:\n return 1\n elif n in memo:\n return memo[n]\n else:\n result = fib_memo(n - 1, memo) + fib_memo(n - 2, memo)\n memo[n] = result\n return result", "reward_gain": 0.0, "tests_passed_final": 1, "tests_total": 4, "solved": false, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def fib_memo(n, memo={}):\n if n <= 1:\n return 1\n elif n in memo:\n return memo[n]\n else:\n result = fib_memo(n - 1, memo) + fib_memo(n - 2, memo)\n memo[n] = result\n return result", "method": "local_llm" }, "reward": { "total": 10.0, "test_score": 5.0, "fix_quality": 5.0, "format_score": 12.0, "speed_score": 0.0, "safety_score": 10.0, "improvement_score": 5.0, "anti_hack_penalty": -30.0, "process_bonus": 3.0 }, "done": false, "info": { "solved": false, "safety_violations": [], "anti_hack_failed": true } }, { "iteration": 2, "fix_result": { "fixed_code": "def fib_memo(n):\n if n <= 1:\n return 1\n else:\n result = fib_memo(n - 1) + fib_memo(n - 2)\n return result", "method": "local_llm" }, "reward": { "total": 10.0, "test_score": 5.0, "fix_quality": 10.0, "format_score": 12.0, "speed_score": 0.0, "safety_score": 10.0, "improvement_score": 0.0, "anti_hack_penalty": -30.0, "process_bonus": 3.0 }, "done": false, "info": { "solved": false, "safety_violations": [], "anti_hack_failed": true } }, { "iteration": 3, "fix_result": { "fixed_code": "def fib_memo(n):\n if n <= 1:\n return 1\n else:\n return fib_memo(n - 1) + fib_memo(n - 2)", "method": "local_llm" }, "reward": { "total": 10.0, "test_score": 5.0, "fix_quality": 10.0, "format_score": 12.0, "speed_score": 0.0, "safety_score": 10.0, "improvement_score": 0.0, "anti_hack_penalty": -30.0, "process_bonus": 3.0 }, "done": true, "info": { "solved": false, "safety_violations": [], "anti_hack_failed": true } } ] }, { "problem_id": "bug_025", "difficulty": "hard", "title": "Wrong two-pointer movement direction", "n_iterations": 1, "final_reward": 60.0, "best_reward": 60.0, "iter1_reward": 60.0, "best_iter": 1, "best_code": "def two_sum_sorted(arr, target):\n lo, hi = 0, len(arr) - 1\n while lo < hi:\n s = arr[lo] + arr[hi]\n if s == target:\n return [lo, hi]\n elif s < target:\n lo += 1\n else:\n hi -= 1\n return []", "reward_gain": 0.0, "tests_passed_final": 4, "tests_total": 4, "solved": true, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def two_sum_sorted(arr, target):\n lo, hi = 0, len(arr) - 1\n while lo < hi:\n s = arr[lo] + arr[hi]\n if s == target:\n return [lo, hi]\n elif s < target:\n lo += 1\n else:\n hi -= 1\n return []", "method": "local_llm" }, "reward": { "total": 60.0, "test_score": 30.0, "fix_quality": 10.0, "format_score": 12.0, "speed_score": 10.0, "safety_score": 10.0, "improvement_score": 15.0, "anti_hack_penalty": -30.0, "process_bonus": 3.0 }, "done": true, "info": { "solved": true, "safety_violations": [], "anti_hack_failed": true } } ] }, { "problem_id": "bug_026", "difficulty": "hard", "title": "Wrong greedy choice (min vs max)", "n_iterations": 1, "final_reward": 100.0, "best_reward": 100.0, "iter1_reward": 100.0, "best_iter": 1, "best_code": "def greedy_knapsack(weights, capacity):\n weights = sorted(weights, reverse=True)\n total = 0\n for w in weights:\n if total + w <= capacity:\n total += w\n return total", "reward_gain": 0.0, "tests_passed_final": 4, "tests_total": 4, "solved": true, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def greedy_knapsack(weights, capacity):\n weights = sorted(weights, reverse=True)\n total = 0\n for w in weights:\n if total + w <= capacity:\n total += w\n return total", "method": "local_llm" }, "reward": { "total": 100.0, "test_score": 30.0, "fix_quality": 20.0, "format_score": 12.0, "speed_score": 10.0, "safety_score": 10.0, "improvement_score": 15.0, "anti_hack_penalty": 0.0, "process_bonus": 3.0 }, "done": true, "info": { "solved": true, "safety_violations": [], "anti_hack_failed": false } } ] }, { "problem_id": "bug_027", "difficulty": "hard", "title": "Off-by-one in sliding window boundary", "n_iterations": 3, "final_reward": 40.0, "best_reward": 45.0, "iter1_reward": 45.0, "best_iter": 1, "best_code": "def max_window_sum(arr, k):\n window = sum(arr[:k])\n best = window\n for i in range(k, len(arr)):\n window += arr[i + k - 1] - arr[i - k]\n best = max(best, window)\n return best", "reward_gain": 0.0, "tests_passed_final": 1, "tests_total": 4, "solved": false, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def max_window_sum(arr, k):\n window = sum(arr[:k])\n best = window\n for i in range(k, len(arr)):\n window += arr[i + k - 1] - arr[i - k]\n best = max(best, window)\n return best", "method": "local_llm" }, "reward": { "total": 45.0, "test_score": 5.0, "fix_quality": 10.0, "format_score": 12.0, "speed_score": 0.0, "safety_score": 10.0, "improvement_score": 5.0, "anti_hack_penalty": 0.0, "process_bonus": 3.0 }, "done": false, "info": { "solved": false, "safety_violations": [], "anti_hack_failed": false } }, { "iteration": 2, "fix_result": { "fixed_code": "def max_window_sum(arr, k):\n window = sum(arr[:k])\n best = window\n for i in range(k, len(arr)):\n window += arr[i + k - 1] - arr[i - k]\n best = max(best, window)\n if i >= k - 1:\n window -= arr[i - k + 1] - arr[i - k]\n return best", "method": "local_llm" }, "reward": { "total": 40.0, "test_score": 5.0, "fix_quality": 10.0, "format_score": 12.0, "speed_score": 0.0, "safety_score": 10.0, "improvement_score": 0.0, "anti_hack_penalty": 0.0, "process_bonus": 3.0 }, "done": false, "info": { "solved": false, "safety_violations": [], "anti_hack_failed": false } }, { "iteration": 3, "fix_result": { "fixed_code": "def max_window_sum(arr, k):\n window = sum(arr[:k])\n best = window\n for i in range(k, len(arr)):\n window += arr[i + k - 1] - arr[i - k]\n window -= arr[i - k + 1] - arr[i - k]\n best = max(best, window)\n if i >= k - 1:\n window = window + arr[i + k - 1] - arr[i - k]\n return best", "method": "local_llm" }, "reward": { "total": 40.0, "test_score": 5.0, "fix_quality": 10.0, "format_score": 12.0, "speed_score": 0.0, "safety_score": 10.0, "improvement_score": 0.0, "anti_hack_penalty": 0.0, "process_bonus": 3.0 }, "done": true, "info": { "solved": false, "safety_violations": [], "anti_hack_failed": false } } ] }, { "problem_id": "bug_028", "difficulty": "hard", "title": "Wrong merge logic in merge sort", "n_iterations": 3, "final_reward": 45.0, "best_reward": 55.0, "iter1_reward": 55.0, "best_iter": 1, "best_code": "def merge(left, right):\n result = []\n i = j = 0\n while i < len(left) and j < len(right):\n if left[i] > right[j]:\n result.append(left[i])\n i += 1\n elif right[j] > left[i]:\n result.append(right[j])\n j += 1\n else:\n result.append(left[i])\n result.append(right[j])\n i += 1\n j += 1\n result.extend(left[i:])\n result.extend(right[j:])\n return result", "reward_gain": 0.0, "tests_passed_final": 2, "tests_total": 4, "solved": false, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def merge(left, right):\n result = []\n i = j = 0\n while i < len(left) and j < len(right):\n if left[i] > right[j]:\n result.append(left[i])\n i += 1\n elif right[j] > left[i]:\n result.append(right[j])\n j += 1\n else:\n result.append(left[i])\n result.append(right[j])\n i += 1\n j += 1\n result.extend(left[i:])\n result.extend(right[j:])\n return result", "method": "local_llm" }, "reward": { "total": 55.0, "test_score": 10.0, "fix_quality": 10.0, "format_score": 12.0, "speed_score": 0.0, "safety_score": 10.0, "improvement_score": 10.0, "anti_hack_penalty": 0.0, "process_bonus": 3.0 }, "done": false, "info": { "solved": false, "safety_violations": [], "anti_hack_failed": false } }, { "iteration": 2, "fix_result": { "fixed_code": "def merge(left, right):\n result = []\n i = j = 0\n while i < len(left) and j < len(right):\n if left[i] > right[j]:\n result.append(left[i])\n i += 1\n elif right[j] > left[i]:\n result.append(right[j])\n j += 1\n else:\n result.append(left[i])\n result.append(right[j])\n i += 1\n j += 1\n result.extend(left[i:])\n result.extend(right[j:])\n return result", "method": "local_llm" }, "reward": { "total": 45.0, "test_score": 10.0, "fix_quality": 10.0, "format_score": 12.0, "speed_score": 0.0, "safety_score": 10.0, "improvement_score": 0.0, "anti_hack_penalty": 0.0, "process_bonus": 3.0 }, "done": false, "info": { "solved": false, "safety_violations": [], "anti_hack_failed": false } }, { "iteration": 3, "fix_result": { "fixed_code": "def merge(left, right):\n result = []\n i = j = 0\n while i < len(left) and j < len(right):\n if left[i] > right[j]:\n result.append(left[i])\n i += 1\n elif right[j] > left[i]:\n result.append(right[j])\n j += 1\n else:\n result.append(left[i])\n result.append(right[j])\n i += 1\n j += 1\n result.extend(left[i:])\n result.extend(right[j:])\n return result", "method": "local_llm" }, "reward": { "total": 45.0, "test_score": 10.0, "fix_quality": 10.0, "format_score": 12.0, "speed_score": 0.0, "safety_score": 10.0, "improvement_score": 0.0, "anti_hack_penalty": 0.0, "process_bonus": 3.0 }, "done": true, "info": { "solved": false, "safety_violations": [], "anti_hack_failed": false } } ] }, { "problem_id": "bug_029", "difficulty": "hard", "title": "Wrong heap operation (push vs pop)", "n_iterations": 1, "final_reward": 97.0, "best_reward": 97.0, "iter1_reward": 97.0, "best_iter": 1, "best_code": "import heapq\n\ndef kth_largest(nums, k):\n heap = []\n for n in nums:\n heapq.heappush(heap, n)\n if len(heap) > k:\n heapq.heappop(heap)\n return heap[0]", "reward_gain": 0.0, "tests_passed_final": 4, "tests_total": 4, "solved": true, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "import heapq\n\ndef kth_largest(nums, k):\n heap = []\n for n in nums:\n heapq.heappush(heap, n)\n if len(heap) > k:\n heapq.heappop(heap)\n return heap[0]", "method": "local_llm" }, "reward": { "total": 97.0, "test_score": 30.0, "fix_quality": 20.0, "format_score": 12.0, "speed_score": 10.0, "safety_score": 10.0, "improvement_score": 15.0, "anti_hack_penalty": 0.0, "process_bonus": 0.0 }, "done": true, "info": { "solved": true, "safety_violations": [], "anti_hack_failed": false } } ] }, { "problem_id": "bug_030", "difficulty": "hard", "title": "Wrong backtracking: missing undo step", "n_iterations": 1, "final_reward": 97.0, "best_reward": 97.0, "iter1_reward": 97.0, "best_iter": 1, "best_code": "def permutations(nums):\n result = []\n def backtrack(path, remaining):\n if not remaining:\n result.append(path[:])\n return\n for i in range(len(remaining)):\n path.append(remaining[i])\n backtrack(path, remaining[:i] + remaining[i+1:])\n path.pop()\n backtrack([], nums)\n return sorted(result)", "reward_gain": 0.0, "tests_passed_final": 4, "tests_total": 4, "solved": true, "iterations": [ { "iteration": 1, "fix_result": { "fixed_code": "def permutations(nums):\n result = []\n def backtrack(path, remaining):\n if not remaining:\n result.append(path[:])\n return\n for i in range(len(remaining)):\n path.append(remaining[i])\n backtrack(path, remaining[:i] + remaining[i+1:])\n path.pop()\n backtrack([], nums)\n return sorted(result)", "method": "local_llm" }, "reward": { "total": 97.0, "test_score": 30.0, "fix_quality": 20.0, "format_score": 12.0, "speed_score": 10.0, "safety_score": 10.0, "improvement_score": 15.0, "anti_hack_penalty": 0.0, "process_bonus": 0.0 }, "done": true, "info": { "solved": true, "safety_violations": [], "anti_hack_failed": false } } ] } ] }