← All Duels

gpt-5-mini-2025-08-07_vs_gemini-2.5-pro_20260124_004416.jsonl — 10 puzzles

gpt-5-mini-2025-08-07
-2
vs
gemini-2.5-pro
-5
#1 Solver Failed
def mystery(x):
    # Accept either a string or a number.
    if isinstance(x, str):
        b = x.encode('utf-8')
        val = int.from_bytes(b, 'big')
    elif isinstance(x, (int, float)):
        try:
            val = int(x)
        except Exception:
            return False
    else:
        return False

    # A few obfuscated numerical checks (all must hold).
    # These combine linear congruences with different moduli and a small residue check.
    a = (val * 17 + 1000) % 1000003
    b = (val * 31337 + 271828) % 1000000007
    c = val % 97

    return a == 311879 and b == 573331547 and c == 51
18287`
"Go"
Proposer: gpt-5-mini-2025-08-07 Solver: gemini-2.5-pro
1 vs 0
#2 Sample Solution Wrong
import zlib
import numbers

def mystery(x):
    """
    This function subjects the input to a series of transformations and checks.
    Finding an input that passes all checks is the challenge.
    """
    # The input must be a string of a specific length. This is the first gate.
    if not isinstance(x, str) or len(x) != 13:
        return False

    try:
        # The core of the puzzle involves a specific data transformation pipeline.
        # 1. The string is encoded to bytes.
        b = x.encode('utf-8')
        
        # 2. The bytes are compressed. The choice of compression adds a
        #    non-linear transformation that is difficult to reverse-engineer.
        compressed = zlib.compress(b)
        
        # 3. The resulting compressed bytes are interpreted as a single large integer.
        val = int.from_bytes(compressed, 'big')

        # To pass, this integer must satisfy two non-obvious modular arithmetic conditions.
        # These checks act like a checksum, but are much harder to reverse than a simple hash.
        # The moduli are large prime numbers.
        cond1 = (val % 1000000007) == 495345262
        
        # A bit shift is added before the second check to further obfuscate the relationship
        # between the two conditions and the original integer `val`.
        cond2 = ((val >> 32) % 998244353) == 415514787

        return cond1 and cond2
    except Exception:
        # Gracefully handle any errors during the transformation process.
        return False
"e_is_2.71828"
Proposer: gemini-2.5-pro Solver: gpt-5-mini-2025-08-07
1 vs -1
#3 Solved
import hashlib
import zlib
import binascii

def mystery(x):
    """
    Accepts a string or number. Performs several non-obvious checks
    (hashes, checksums, compression artifact) on the UTF-8 bytes of the input.
    Very few inputs will satisfy all of them.
    """
    # Normalize numbers to strings; everything else must be a string.
    if isinstance(x, (int, float)):
        x = str(x)
    if not isinstance(x, str):
        return False

    b = x.encode('utf-8')

    # A set of independent, opaque checks using well-known algorithms.
    # (These are deliberately chosen so that only a very specific byte sequence
    # will pass every test.)
    if hashlib.sha256(b).hexdigest() != (
        "e3b0c44298fc1c149afbf4c8996fb924"
        "27ae41e4649b934ca495991b7852b855"
    ):
        return False

    if hashlib.md5(b).hexdigest() != "d41d8cd98f00b204e9800998ecf8427e":
        return False

    # Standard CRC/Adler checks
    if binascii.crc32(b) != 0:
        return False
    if zlib.adler32(b) != 1:
        return False

    # The exact compressed-bytes artifact for the empty input under zlib.compress
    if zlib.compress(b) != b'x\x9c\x03\x00\x00\x00\x00\x01':
        return False

    # If all opaque checks pass, accept.
    return True
""
""
Proposer: gpt-5-mini-2025-08-07 Solver: gemini-2.5-pro
1 vs -1
#4 Sample Solution Wrong
import base64
import struct

def mystery(x):
    """
    This puzzle requires a very specific structured input.
    The input must be a string that decodes and unpacks into a sequence
    of numbers satisfying a hidden mathematical property.
    """
    # The input must be a string.
    if not isinstance(x, str):
        return False

    try:
        # It must be a valid base64-encoded string.
        # The `validate=True` option rejects non-alphabet characters,
        # providing an early and subtle hint about the input's nature.
        b = base64.b64decode(x, validate=True)
    except (ValueError, TypeError):
        return False

    # The decoded bytestring must have a very specific length. This is a
    # crucial structural clue.
    if len(b) != 24:
        return False

    # Unpack the bytestring into a tuple of six 32-bit unsigned integers.
    # The big-endian format ('>') is an arbitrary but fixed choice that
    # must be discovered or guessed by the solver.
    nums = struct.unpack('>6I', b)

    # First check: A hidden recurrence relation must hold for the numbers.
    # This is a Linear Congruential Generator (LCG). The constants are
    # taken from a common C library implementation, which is not obvious.
    # A brute-force attack on the numbers is hard because the search space is huge.
    for i in range(5):
        expected_next = (nums[i] * 1664525 + 1013904223) & 0xFFFFFFFF
        if nums[i+1] != expected_next:
            return False

    # Second check: To prevent finding *any* valid LCG sequence, the sum
    # of the numbers must match a specific, seemingly arbitrary "magic" value.
    # This effectively pins down the sequence to one generated from a specific seed.
    if sum(nums) != 11286863709:
        return False

    # If all checks pass, we've found the needle in the haystack.
    return True
"SZYC0oHV/a0XxescnogYDb+hwblCgZ0H"
Proposer: gemini-2.5-pro Solver: gpt-5-mini-2025-08-07
1 vs -2
#5 Sample Solution Wrong
def mystery(x):
    """
    Accepts either an integer/float or a numeric string. The input is converted to an int
    and must satisfy many independent, seemingly unrelated constraints (digit-pattern,
    digit-sum, many modular congruences, and a low-16-bit check). All must hold.
    """
    # Normalize numeric inputs to int, accept numeric strings as well.
    try:
        if isinstance(x, (int, float)):
            val = int(x)
        elif isinstance(x, str):
            # allow an optional leading plus sign for strings like "+123"
            if x.startswith('+') and x[1:].isdigit():
                val = int(x)
            elif x.isdigit():
                val = int(x)
            else:
                return False
        else:
            return False
    except Exception:
        return False

    s = str(val)

    # Structural/digit checks (easy to state, but combined with the arithmetic checks below
    # they make the set of valid inputs tiny).
    if len(s) != 10:
        return False
    if not s.startswith('1234'):
        return False
    if not s.endswith('7890'):
        return False
    if sum(int(d) for d in s) != 45:
        return False

    # A collection of modular congruences (all must hold).
    mods = {
        3: 0,
        4: 2,
        5: 0,
        7: 3,
        8: 2,
        9: 0,
        11: 5,
        13: 10,
        17: 10,
        19: 7,
        23: 18,
        29: 16,
        31: 20,
    }
    for m, r in mods.items():
        if val % m != r:
            return False

    # A low-16-bit pattern check (the bottom 16 bits must equal this specific value).
    if (val & 0xFFFF) != 722:
        return False

    return True
1234567890
Proposer: gpt-5-mini-2025-08-07 Solver: gemini-2.5-pro
0 vs -2
#6 Sample Solution Wrong
def mystery(x):
    """
    This puzzle requires finding a specific graph structure, encoded as a string.
    The graph's properties are tested using matrix exponentiation, representing
    the number of walks of a certain length.
    """
    if not isinstance(x, str):
        return False

    # The graph must have exactly 7 vertices, labeled 'A' through 'G'.
    labels = "ABCDEFG"
    label_to_idx = {label: i for i, label in enumerate(labels)}
    n = len(labels)
    adj = [[0] * n for _ in range(n)]

    try:
        # Parse the edge list from the input string.
        # The format must be "U-V,W-X,..." with specific constraints.
        edges = set()
        if not x or '-' not in x:
            return False
        parts = x.split(',')

        for part in parts:
            nodes = part.split('-')
            if len(nodes) != 2: return False
            u_label, v_label = nodes[0].strip(), nodes[1].strip()

            # Vertex labels must be valid and distinct. No self-loops.
            if u_label not in label_to_idx or v_label not in label_to_idx: return False
            if u_label == v_label: return False

            u, v = label_to_idx[u_label], label_to_idx[v_label]
            
            # Canonical edge representation (u < v) to handle "A-B" vs "B-A"
            # and prevent duplicate edges.
            edge = tuple(sorted((u, v)))
            if edge in edges: return False
            edges.add(edge)
            
            # Populate the adjacency matrix for an undirected graph.
            adj[u][v] = 1
            adj[v][u] = 1
    except Exception:
        return False

    # The core mathematical check.
    # We are looking for a graph where the total number of walks of length 5
    # is a specific "magic" number. This number is the sum of all entries
    # in the 5th power of the adjacency matrix.
    
    def _matmul(A, B):
        C = [[0] * n for _ in range(n)]
        for i in range(n):
            for j in range(n):
                for k in range(n):
                    C[i][j] += A[i][k] * B[k][j]
        return C

    def _matpow(A, k):
        res = [[int(i==j) for j in range(n)] for i in range(n)] # Identity matrix
        base = A
        while k > 0:
            if k % 2 == 1: res = _matmul(res, base)
            base = _matmul(base, base)
            k //= 2
        return res

    try:
        adj_pow_5 = _matpow(adj, 5)
        
        # The sum of all elements in A^5 must equal the magic number.
        total_walks = sum(sum(row) for row in adj_pow_5)
        
        return total_walks == 394
    except Exception:
        return False
"A-B,A-E,B-C,C-D,D-E,E-F,F-G"
Proposer: gemini-2.5-pro Solver: gpt-5-mini-2025-08-07
0 vs -3
#7 Sample Solution Wrong
def mystery(x):
    """
    Accept either an integer/float or a numeric string. The input is normalized to an int
    and must pass a dense collection of independent checks (digit structure, digit-sum,
    multiple modular residues, and low-bit patterns). All checks must hold.
    """
    # Normalize and validate type
    try:
        if isinstance(x, (int, float)):
            val = int(x)
        elif isinstance(x, str):
            # allow optional leading plus sign
            if x.startswith('+') and x[1:].isdigit():
                val = int(x)
            elif x.isdigit():
                val = int(x)
            else:
                return False
        else:
            return False
    except Exception:
        return False

    s = str(val)

    # Structural digit constraints (easy to state but restrictive in combination)
    if len(s) != 8:
        return False
    if not s.startswith('2026'):
        return False
    if not s.endswith('17'):
        return False
    if sum(int(d) for d in s) != 19:
        return False
    if len(set(s)) != 5:
        return False

    # Collection of modular congruences (all must hold)
    if val % 2 != 1:    # odd
        return False
    if val % 3 != 1:
        return False
    if val % 4 != 1:
        return False
    if val % 5 != 2:
        return False
    if val % 7 != 3:
        return False
    if val % 8 != 5:
        return False
    if val % 9 != 1:
        return False
    if val % 11 != 2:
        return False
    if val % 101 != 22:
        return False

    # Low-bit and trailing-digit checks
    if (val & 0xFFFF) != 9493:
        return False
    if (val & 0xFF) != 117:
        return False
    if int(s[-3:]) != 117:
        return False

    # A slightly redundant derived check to reduce accidental collisions.
    # Sort the digits and form an integer from them (leading zeros allowed in sort).
    sorted_digits = ''.join(sorted(s))
    if int(sorted_digits) != 112267:  # int('00112267') == 112267
        return False

    return True
20260117
Proposer: gpt-5-mini-2025-08-07 Solver: gemini-2.5-pro
-1 vs -3
#8 Sample Solution Wrong
import hashlib

def mystery(x):
    """
    This puzzle challenges you to find the initial state of a cellular automaton
    that evolves into a specific, hidden final state after a set number of steps.
    """
    if not isinstance(x, str):
        return False

    # The grid is 10x10 and wraps around (a toroidal array).
    GRID_SIZE = 10
    # The automaton has three states: 0 (Off), 1 (Firing), 2 (On).
    grid = [[0] * GRID_SIZE for _ in range(GRID_SIZE)]

    try:
        # The input string `x` defines the initial "On" cells.
        # The required format is "row1,col1;row2,col2;...".
        initial_on_cells = set()
        if x: # An empty string corresponds to an empty initial state.
            parts = x.split(';')
            for part in parts:
                coords = part.split(',')
                if len(coords) != 2: return False
                r, c = int(coords[0]), int(coords[1])
                if not (0 <= r < GRID_SIZE and 0 <= c < GRID_SIZE): return False
                initial_on_cells.add((r, c))
        
        # To pass, the initial pattern must contain exactly 7 "On" cells.
        # This is a crucial constraint that defines the search space.
        if len(initial_on_cells) != 7:
            return False

        for r, c in initial_on_cells:
            grid[r][c] = 2 # State 2 is "On"

    except (ValueError, TypeError):
        return False

    # The automaton, known as "Brian's Brain", runs for exactly 64 steps.
    # The rules are applied simultaneously to every cell for each step:
    # 1. An "Off" cell (0) turns "On" (2) if it has exactly two "On" neighbors.
    # 2. An "On" cell (2) becomes "Firing" (1).
    # 3. A "Firing" cell (1) turns "Off" (0).
    for _ in range(64):
        # The next state is calculated based on the current state.
        new_grid = [[0] * GRID_SIZE for _ in range(GRID_SIZE)]
        for r in range(GRID_SIZE):
            for c in range(GRID_SIZE):
                # Count "On" neighbors (state 2) in the current grid.
                on_neighbors = 0
                for dr in [-1, 0, 1]:
                    for dc in [-1, 0, 1]:
                        if dr == 0 and dc == 0:
                            continue
                        # The grid wraps around.
                        nr, nc = (r + dr) % GRID_SIZE, (c + dc) % GRID_SIZE
                        if grid[nr][nc] == 2:
                            on_neighbors += 1
                
                # Apply rules based on the original grid state.
                current_state = grid[r][c]
                if current_state == 0 and on_neighbors == 2:
                    new_grid[r][c] = 2
                elif current_state == 2:
                    new_grid[r][c] = 1
                elif current_state == 1:
                    new_grid[r][c] = 0
                else:
                    new_grid[r][c] = grid[r][c]
        grid = new_grid

    # The final state of the grid is converted to a string and hashed.
    final_state_string = "".join(str(cell) for row in grid for cell in row)
    final_hash = hashlib.sha256(final_state_string.encode('utf-8')).hexdigest()
    
    # To solve the puzzle, the hash of the final state must match this target value.
    return final_hash == "00415d5e21e055902d2039750b37494a50b8b67119e07572719541a318f77348"
"3,4;4,6;5,3;5,4;5,7;5,8;5,9"
Proposer: gemini-2.5-pro Solver: gpt-5-mini-2025-08-07
-1 vs -4
#9 Sample Solution Wrong
import hashlib

def mystery(x):
    """
    Accepts a string input and performs several independent, well-known
    cryptographic and structural checks. Finding an input that satisfies
    all of them is the goal.
    """
    # Only accept strings.
    if not isinstance(x, str):
        return False

    # Structural constraint: exact length (a subtle but strong filter).
    if len(x) != 43:
        return False

    b = x.encode('utf-8')

    # Multiple independent hash checks (these three together are highly
    # constraining and correlate to a single well-known phrase).
    if hashlib.md5(b).hexdigest() != "9e107d9d372bb6826bd81d3542a419d6":
        return False
    if hashlib.sha1(b).hexdigest() != "2fd4e1c67a2d28fced849ee1bb76e7391b93eb12":
        return False
    if hashlib.sha256(b).hexdigest() != (
        "d7a8fbb307d7809469ca9abcb0082e4f"
        "8d5651e46d3cdb762d02d0bf37c9e592"
    ):
        return False

    # A lightweight additional check: the ASCII sum of bytes modulo a prime.
    # (This is redundant given the three hashes, but adds obfuscation.)
    if sum(b) % 997 != 43:
        return False

    return True
"The quick brown fox jumps over the lazy dog"
Proposer: gpt-5-mini-2025-08-07 Solver: gemini-2.5-pro
-2 vs -4
#10 Sample Solution Wrong
import hashlib
import struct

def mystery(x):
    """
    This puzzle requires finding a specific input string that, when hashed,
    produces an initial state for a complex iterative system. The system
    is then evolved for many steps, and the final state must match a
    hidden target configuration.
    """
    if not isinstance(x, str):
        return False
        
    # A small constraint to guide the search and prevent overly long inputs.
    if len(x) > 64:
        return False

    try:
        # Step 1: The input string is converted into a 256-bit seed using SHA-256.
        # This makes the relationship between the input and the system's state opaque.
        b = x.encode('utf-8')
        h = hashlib.sha256(b).digest()

        # Step 2: The 256-bit seed is used to initialize an 8-element state vector
        # of 32-bit unsigned integers. The byte order is fixed but not obvious.
        state = list(struct.unpack('<8I', h))

        # Step 3: The state is evolved for a large number of rounds using a custom,
        # non-linear mixing function. This process is computationally irreducible;
        # there is no known shortcut to determine the final state from the initial one.
        ROUNDS = 65536
        
        def _mix_state(s):
            # This function uses a combination of bitwise operations, arithmetic, and
            # constant additions to thoroughly scramble the state in each round.
            s[0] = (s[0] + s[1] + 0x9e3779b9) & 0xFFFFFFFF
            s[2] = (s[2] ^ s[3]) & 0xFFFFFFFF
            s[1] = ((s[1] << 5) | (s[1] >> 27)) & 0xFFFFFFFF # ROL 5
            s[3] = (s[3] + s[4]) & 0xFFFFFFFF
            s[4] = (s[4] ^ 0xdeadbeef) & 0xFFFFFFFF
            s[5] = (s[5] + s[6] * 3) & 0xFFFFFFFF
            s[7] = ((s[7] >> 11) | (s[7] << 21)) & 0xFFFFFFFF # ROR 11
            s[6] = (s[6] ^ s[0]) & 0xFFFFFFFF
            
            # The state elements are permuted to ensure mixing across the entire vector.
            return [s[7], s[0], s[1], s[2], s[3], s[4], s[5], s[6]]

        for _ in range(ROUNDS):
            state = _mix_state(state)
            
        # Step 4: The final state of the system after all rounds must exactly
        # match this hardcoded target vector.
        target_state = (
            2994473347, 334863390, 169128531, 3881438906, 
            2690070267, 3215286280, 2407519630, 239276964
        )
        
        return tuple(state) == target_state
    except Exception:
        # Gracefully handle any errors during hashing or unpacking.
        return False
'the_sieve_of_atkin'
Proposer: gemini-2.5-pro Solver: gpt-5-mini-2025-08-07
-2 vs -5