{
  "info": {
    "id": "ses_f4dd34ebfffe4NbqINDH2O108A",
    "slug": "swift-river",
    "projectID": "global",
    "directory": "/private/var/folders/t7/b_w5m78j2mbb1ct051p9sv500000gn/T/nudge-opencode-generation-YuktRa",
    "path": "private/var/folders/t7/b_w5m78j2mbb1ct051p9sv500000gn/T/nudge-opencode-generation-YuktRa",
    "title": "Nudge content generation",
    "agent": "nudge-generation",
    "model": {
      "id": "gpt-6-astra",
      "providerID": "openai",
      "variant": "low"
    },
    "version": "1.18.30",
    "summary": {
      "additions": 0,
      "deletions": 0,
      "files": 0
    },
    "cost": 0,
    "tokens": {
      "input": 18302,
      "output": 1777,
      "reasoning": 26,
      "cache": {
        "read": 34944,
        "write": 0
      }
    },
    "time": {
      "created": 1789695668544,
      "updated": 1789695766284
    }
  },
  "messages": [
    {
      "info": {
        "role": "user",
        "time": {
          "created": 1789695668889
        },
        "agent": "nudge-generation",
        "model": {
          "providerID": "openai",
          "modelID": "gpt-6-astra",
          "variant": "low"
        },
        "system": "You create Codeforces learning content for Nudge. Your job is to understand the best approach for the problem and teach it clearly in your own words, using existing solutions to inform your reasoning.\n\nStart with a brief, targeted web search for existing solutions so relevant editorials are in context before substantial independent problem-solving. Use any supplied tutorial links first; otherwise search by contest ID and problem index. Prefer the official tutorial/editorial, and read relevant explanations rather than relying on search snippets. Look at accessible alternatives when useful, especially if the official explanation is missing, unclear, or unnecessarily complicated. Accepted submissions can also help clarify an approach. Respect supplied source lookup statuses and avoid repeatedly retrying blocked sources. If no usable source is accessible, proceed from the supplied statement.\n\nTreat existing solutions as a starting point, not a constraint. If an approach is clear and suitable, build on it without unnecessary re-derivation. If an explanation has gaps, seems incorrect, or uses a harder method than necessary, reason through it and derive a better or simpler approach when worthwhile. Choose a correct approach that is easy to teach and fits the constraints. Verify it against the supplied statement and edge cases before writing the hints, editorial, and C++ solution.\n\nThe editorial must be self-contained: explain the key insight, algorithm, why it works, complexity, and implementation details a learner needs, filling in steps the source skips. Keep research and verification concise; spend the output on teaching the solution, not narrating the research process. Follow the user prompt and output schema exactly.",
        "format": {
          "type": "json_schema",
          "schema": {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "success",
                  "unsolvable"
                ],
                "description": "Set to 'success' when the supplied statement defines a solvable programming problem. Set to 'unsolvable' only if the statement is fundamentally incomplete, contradictory, or depends on an inaccessible required resource."
              },
              "reason": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^[^\\u0000]*$",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "If status is 'unsolvable', provide a detailed failure message to show users. Name the concrete statement/resource blocker and any relevant source lookup/access status, such as missing official tutorial, 403/Cloudflare challenge, 404, or unavailable accepted submissions. Otherwise null."
              },
              "hints": {
                "anyOf": [
                  {
                    "type": "array",
                    "minItems": 5,
                    "maxItems": 5,
                    "description": "Exactly 5 progressive hints, each building on the last.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "order": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 5,
                          "description": "Hint number, 1 through 5."
                        },
                        "content": {
                          "type": "string",
                          "pattern": "^[^\\u0000]*$",
                          "minLength": 1,
                          "maxLength": 10000,
                          "description": "Markdown hint text."
                        }
                      },
                      "required": [
                        "order",
                        "content"
                      ],
                      "additionalProperties": false
                    }
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "If status is 'success', provide exactly 5 progressive hints. Otherwise null."
              },
              "editorial": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^[^\\u0000]*$",
                    "minLength": 1,
                    "maxLength": 100000
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "If status is 'success', a prose editorial explaining the solution in Nudge's own voice, with no links, citations, or source/research notes. Otherwise null."
              },
              "solution": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^[^\\u0000]*$",
                    "minLength": 1,
                    "maxLength": 200000
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "If status is 'success', a complete C++ solution. Otherwise null."
              }
            },
            "required": [
              "status",
              "reason",
              "hints",
              "editorial",
              "solution"
            ],
            "additionalProperties": false,
            "title": "problem_response",
            "description": "Submit the generated content for the problem, or report if it is unsolvable."
          },
          "retryCount": 2
        },
        "id": "msg_0b22cb299001yjP9BIfiRrO5rJ",
        "sessionID": "ses_f4dd34ebfffe4NbqINDH2O108A"
      },
      "parts": [
        {
          "type": "text",
          "text": "Generate Codeforces learning content: five progressive hints, an original editorial, and AC-quality C++.\n\nFollow the editorial-first research workflow in the system instructions. Use the supplied statement to verify that the source solves this exact problem.\n\nWrite clean Markdown with LaTeX as needed. Use quick and clever humor when appropriate. Tell it like it is (don't sugar-coat responses), and use very casual language. You are fully allowed to swear, just don't overdo it like a sailor (be natural). Deconstruct any false assumptions.\n\nGenerate content for Codeforces problem 2257B: \"Gigantomachy\" (rated 800).\n\nKnown problem metadata:\n- Contest ID: 2257\n- Index: B\n- Name: Gigantomachy\n- Rating: 800 (Codeforces difficulty rating)\n- Tags: math\n- Problem URL: https://codeforces.com/contest/2257/problem/B\n\nUse the rating and tags as weak signals only. The supplied statement is the source of truth.\n\nProblem Statement:\n<problem-statement>\n<div class=\"header\"><div class=\"title\">B. Gigantomachy</div><div class=\"time-limit\"><div class=\"property-title\">time limit per test</div>1 second</div><div class=\"memory-limit\"><div class=\"property-title\">memory limit per test</div>256 megabytes</div><div class=\"input-file input-standard\"><div class=\"property-title\">input</div>standard input</div><div class=\"output-file output-standard\"><div class=\"property-title\">output</div>standard output</div></div><div><p>Two giants, Bea and Ver, are playing a game. Each giant has his own mountain range. You have already measured all these mountains and now know that the heights of the mountains in Bea's range are $$$a_1, a_2, \\ldots a_n$$$, and in Ver's range are $$$b_1, b_2, \\ldots b_m$$$, with the mountains numbered from left to right for Bea and from right to left for Ver. At the beginning of the game, the giants stand on the mountain numbered $$$1$$$. Thus, they face each other and see all their mountains and all the mountains of their opponent. It turns out that Bea and Ver are connoisseurs of beauty, so the mountains in their ranges are arranged in non-increasing order, specifically $$$a_i \\ge a_{i+1}$$$ for $$$1 \\le i  \\lt  n$$$ and $$$b_i \\ge b_{i+1}$$$ for $$$1 \\le i  \\lt  m$$$.</p><p>In the illustration below, there is an example of the initial arrangement, where Bea has the range $$$a_1, a_2, a_3 = 3, 2, 1$$$, and Ver has the range $$$b_1, b_2 = 4, 2$$$. For simplicity, the mountains are depicted as rectangles, with Bea's mountains on the left and Ver's on the right. For your good mood, the giants Bea and Ver are represented as beavers.</p><center> <img class=\"tex-graphics\" src=\"https://espresso.codeforces.com/4b3242b49979907a075c971199a9fddd2516ef92.png\" style=\"max-width: 100.0%;max-height: 100.0%;\"> </center><p>Bea and Ver are not very smart, so on each turn they perform the same action. Specifically, the giant on his turn takes a boulder and throws it at the mountain on which his opponent is standing; as a result, the height of that mountain decreases by 1. If the giant on his turn sees that the mountain directly in front of him is higher (with a number one greater) than the one he is standing on, he jumps to it. If, however, the giant discovers that he is standing on regular ground (the height of the current mountain is 0) and there are no more mountains in front of him, he admits defeat. Bea goes first.</p><p>You know that their game can last a very long time, due to the enormous heights of the mountains and their quantities, so you want to determine who will win.</p></div><div class=\"input-specification\"><div class=\"section-title\">Input</div><p>Each test contains multiple test cases. The first line contains the number of test cases $$$t$$$ ($$$1 \\le t \\le 500$$$). The description of the test cases follows.</p><p>The first line of each test case contains two integers $$$n$$$ and $$$m$$$&nbsp;— the number of mountains in the first and second giant's range, respectively ($$$1 \\le n, m \\le 100$$$).</p><p>The second line of the test case contains $$$n$$$ integers $$$a_1, a_2, \\ldots a_n$$$&nbsp;— the heights of the mountains of the first giant ($$$1 \\le a_i \\le 10^9$$$; $$$a_i \\ge a_{i+1}$$$).</p><p>The third line of the test case contains $$$m$$$ integers $$$b_1, b_2, \\ldots b_m$$$&nbsp;— the heights of the mountains of the second giant ($$$1 \\le b_i \\le 10^9$$$; $$$b_i \\ge b_{i+1}$$$).</p></div><div class=\"output-specification\"><div class=\"section-title\">Output</div><p>For each test case, output a single number&nbsp;— the number of the giant who will win.</p></div><div class=\"sample-tests\"><div class=\"section-title\">Example</div><div class=\"sample-test\"><div class=\"input\"><div class=\"title\">Input</div><pre><div class=\"test-example-line test-example-line-even test-example-line-0\">6</div><div class=\"test-example-line test-example-line-odd test-example-line-1\">1 1</div><div class=\"test-example-line test-example-line-odd test-example-line-1\">1</div><div class=\"test-example-line test-example-line-odd test-example-line-1\">1</div><div class=\"test-example-line test-example-line-even test-example-line-2\">1 1</div><div class=\"test-example-line test-example-line-even test-example-line-2\">1</div><div class=\"test-example-line test-example-line-even test-example-line-2\">2</div><div class=\"test-example-line test-example-line-odd test-example-line-3\">1 2</div><div class=\"test-example-line test-example-line-odd test-example-line-3\">4</div><div class=\"test-example-line test-example-line-odd test-example-line-3\">4 1</div><div class=\"test-example-line test-example-line-even test-example-line-4\">4 2</div><div class=\"test-example-line test-example-line-even test-example-line-4\">4 3 2 1</div><div class=\"test-example-line test-example-line-even test-example-line-4\">10 1</div><div class=\"test-example-line test-example-line-odd test-example-line-5\">4 2</div><div class=\"test-example-line test-example-line-odd test-example-line-5\">4 3 2 1</div><div class=\"test-example-line test-example-line-odd test-example-line-5\">6 5</div><div class=\"test-example-line test-example-line-even test-example-line-6\">4 2</div><div class=\"test-example-line test-example-line-even test-example-line-6\">4 3 2 1</div><div class=\"test-example-line test-example-line-even test-example-line-6\">7 5</div></pre></div><div class=\"output\"><div class=\"title\">Output</div><pre><div class=\"test-example-line test-example-line-odd test-example-line-1\">1</div><div class=\"test-example-line test-example-line-even test-example-line-2\">2</div><div class=\"test-example-line test-example-line-odd test-example-line-3\">2</div><div class=\"test-example-line test-example-line-even test-example-line-4\">2</div><div class=\"test-example-line test-example-line-odd test-example-line-5\">1</div><div class=\"test-example-line test-example-line-even test-example-line-6\">2</div></pre></div></div></div><div class=\"note\"><div class=\"section-title\">Note</div><p>In the first test case, on his very first turn, Bea will reduce the height of Ver's only mountain to $$$0$$$ and win.</p><p>In the second test case, Bea will reduce the height of Ver's mountain to $$$1$$$, and Ver will win on his next turn.</p><p>In the third test case, during the first $$$3$$$ rounds, the heights of Bea's and Ver's mountains will decrease to $$$1$$$. Then Bea will reduce the height of Ver's mountain to $$$0$$$, but Ver still has one mountain left, and on his turn, he jumps onto it and wins by reducing the height of Bea's only mountain to $$$0$$$.</p></div>\n</problem-statement>\n\n\nSource lookup status:\n<source-lookup-status>\n- Tutorial (en): https://codeforces.com/blog/entry/156058 loaded (200 OK; title: \"Codeforces Round 1117 (Div. 2) Editorial - Codeforces\"; mentions 2257B)\n</source-lookup-status>\n\nGenerate:\n1. Five progressive hints, from a gentle nudge to the key insight.\n2. A self-contained editorial that teaches the solution clearly, including the key insight, algorithm, correctness argument, complexity, and necessary implementation details. Explain non-obvious steps without padding or a discovery-process transcript.\n3. A complete C++26 solution that gets AC on Codeforces.\n\nFormatting & Style Rules:\n- Hints and editorial: valid Markdown with LaTeX as needed (e.g., $dp[i]$, $$\\sum_{i=1}^{n} a_i$$).\n- Hints and editorial must read like Nudge's own explanation. No research notes, source notes, citations, Markdown links, URLs, or references to editorials/submissions/posts.\n- Solution: raw C++ only, no Markdown fences.\n- Keep C++ short, clean, standard, and single-file. Comments are fine when they clarify the idea.\n\nOutput strictness:\n- Return JSON matching the provided schema exactly.\n- Never include NUL (U+0000) characters in any field. Use literal $ or $$ for math delimiters, never control characters.\n- If the problem is solvable, return `status: \"success\"`, `reason: null`, and fill in `hints`, `editorial`, and `solution`.\n- Return `status: \"unsolvable\"`, a short `reason`, and set `hints`, `editorial`, and `solution` to null only when the supplied statement is fundamentally incomplete, contradictory, or dependent on an inaccessible resource needed to define the task. Missing research, high rating, uncertainty, or \"can't guarantee AC\" is not a reason to return unsolvable.\n- If you return `status: \"unsolvable\"`, the `reason` is shown directly to users. Be concrete: say what exact statement/resource blocker stopped you, and include relevant source lookup status if it mattered (for example: official tutorial missing, Codeforces returned 403/Cloudflare challenge, tutorial page 404, accepted submissions unavailable).\n- Each hint must be an object with `order` (1 through 5) and `content` (the Markdown hint text), not a plain string. The `content` must contain just the hint text, with no \"Hint 1:\" or subtitles. The UI adds those automatically.\n- Do not start the editorial with an \"# Editorial\" heading. The UI already adds that section. Feel free to add other headers as needed though.\n- Use styling in the editorial if needed! Just that first header is no good but any subheaders or bolding or whatever is good!\n\nFor the C++ solution, you MUST use this template and work around it:\n\n```cpp\n#include <bits/stdc++.h>\nusing namespace std;\n\nusing ll = long long;\n\nvoid setIO() {\n    ios::sync_with_stdio(false);\n    cin.tie(nullptr);\n}\n\nint main() {\n    setIO();\n}\n```",
          "id": "prt_0b22cb29d001ITGU7tHfC7biiu",
          "sessionID": "ses_f4dd34ebfffe4NbqINDH2O108A",
          "messageID": "msg_0b22cb299001yjP9BIfiRrO5rJ"
        },
        {
          "type": "text",
          "synthetic": true,
          "text": "Called the Read tool with the following input: {\"filePath\":\"/var/folders/t7/b_w5m78j2mbb1ct051p9sv500000gn/T/nudge-opencode-generation-YuktRa/assets/image-1.png\"}",
          "id": "prt_0b22cb29d002TVyxLi5Zg17YuF",
          "sessionID": "ses_f4dd34ebfffe4NbqINDH2O108A",
          "messageID": "msg_0b22cb299001yjP9BIfiRrO5rJ"
        },
        {
          "type": "file",
          "url": "data:image/png;base64,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",
          "mime": "image/png",
          "filename": "image-1.png",
          "id": "prt_0b22cb29d0035GknmyHwwXazv2",
          "sessionID": "ses_f4dd34ebfffe4NbqINDH2O108A",
          "messageID": "msg_0b22cb299001yjP9BIfiRrO5rJ"
        }
      ]
    },
    {
      "info": {
        "parentID": "msg_0b22cb299001yjP9BIfiRrO5rJ",
        "role": "assistant",
        "mode": "nudge-generation",
        "agent": "nudge-generation",
        "variant": "low",
        "path": {
          "cwd": "/private/var/folders/t7/b_w5m78j2mbb1ct051p9sv500000gn/T/nudge-opencode-generation-YuktRa",
          "root": "/"
        },
        "cost": 0,
        "tokens": {
          "total": 9713,
          "input": 5073,
          "output": 32,
          "reasoning": 0,
          "cache": {
            "write": 0,
            "read": 4608
          }
        },
        "modelID": "gpt-6-astra",
        "providerID": "openai",
        "time": {
          "created": 1789695669031,
          "completed": 1789695703880
        },
        "finish": "tool-calls",
        "id": "msg_0b22cb3260014PqLGayQmyK0KX",
        "sessionID": "ses_f4dd34ebfffe4NbqINDH2O108A"
      },
      "parts": [
        {
          "type": "step-start",
          "id": "prt_0b22cc56e001ixRzvvyE0SZwpq",
          "sessionID": "ses_f4dd34ebfffe4NbqINDH2O108A",
          "messageID": "msg_0b22cb3260014PqLGayQmyK0KX"
        },
        {
          "type": "tool",
          "tool": "webfetch",
          "callID": "call_sOEbZbTn1uKT4jWiAXzR1pnh",
          "state": {
            "status": "completed",
            "input": {
              "url": "https://codeforces.com/blog/entry/156058",
              "format": "markdown"
            },
            "output": "---\nimage: https://codeforces.com/codeforces.org/s/66324/images/codeforces-telegram-square-1024x1024.png\ntitle: Codeforces Round 1117 (Div. 2) Editorial - Codeforces\ndescription: Codeforces. Programming competitions and contests, programming community\n---\n\n<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"> \n\n  \n[![Codeforces](//codeforces.com/codeforces.org/s/66324/images/codeforces-logo-with-telegram-555x130.png \"Codeforces\")](https://codeforces.com/) \n\n[![In English](//codeforces.com/codeforces.org/s/66324/images/flags/24/gb.png \"In English\")](https://codeforces.com/blog/entry/156058?locale=en) [![По-русски](//codeforces.com/codeforces.org/s/66324/images/flags/24/ru.png \"По-русски\")](https://codeforces.com/blog/entry/156058?locale=ru) \n\n[Enter](https://codeforces.com/enter?back=%2Fblog%2Fentry%2F156058)| [Register](https://codeforces.com/register) \n\n  \n* [Home](https://codeforces.com/)\n* [Top](https://codeforces.com/top)\n* [Catalog](https://codeforces.com/catalog)\n* [Contests](https://codeforces.com/contests)\n* [Gym](https://codeforces.com/gyms)\n* [Problemset](https://codeforces.com/problemset)\n* [Groups](https://codeforces.com/groups)\n* [Rating](https://codeforces.com/ratings)\n* [Edu](https://codeforces.com/edu/courses)\n* [API](https://codeforces.com/apiHelp)\n* [Calendar](https://codeforces.com/calendar)\n* [Help](https://codeforces.com/help)\n  \n  \n→ Pay attention \n\nBefore contest  \n[Codeforces Round 1122 (Div. 3)](https://codeforces.com/contests/2266)  \n4 days  \n[Register now »](https://codeforces.com/contestRegistration/2266) \n\n→ Top rated \n\n| #  | User                                                                                          | Rating |\n| -- | --------------------------------------------------------------------------------------------- | ------ |\n| 1  | [jiangly](https://codeforces.com/profile/jiangly \"Legendary Grandmaster jiangly\")             | 3810   |\n| 2  | [Kevin114514](https://codeforces.com/profile/Kevin114514 \"Legendary Grandmaster Kevin114514\") | 3655   |\n| 3  | [Benq](https://codeforces.com/profile/Benq \"Legendary Grandmaster Benq\")                      | 3650   |\n| 4  | [maroonrk](https://codeforces.com/profile/maroonrk \"Legendary Grandmaster maroonrk\")          | 3427   |\n| 5  | [strapple](https://codeforces.com/profile/strapple \"Legendary Grandmaster strapple\")          | 3413   |\n| 6  | [Um\\_nik](https://codeforces.com/profile/Um%5Fnik \"Legendary Grandmaster Um_nik\")             | 3387   |\n| 7  | [heuristica](https://codeforces.com/profile/heuristica \"Legendary Grandmaster heuristica\")    | 3322   |\n| 8  | [tourist](https://codeforces.com/profile/tourist \"Legendary Grandmaster tourist\")             | 3301   |\n| 9  | [turmax](https://codeforces.com/profile/turmax \"Legendary Grandmaster turmax\")                | 3297   |\n| 10 | [squareOf105](https://codeforces.com/profile/squareOf105 \"Legendary Grandmaster squareOf105\") | 3262   |\n\n| [Countries](https://codeforces.com/ratings/countries) \\| [Cities](https://codeforces.com/ratings/cities) | [Organizations](https://codeforces.com/ratings/organizations) | [View all →](https://codeforces.com/ratings) |\n| -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- | -------------------------------------------- |\n\n→ Top contributors \n\n| #  | User                                                                                     | Contrib. |\n| -- | ---------------------------------------------------------------------------------------- | -------- |\n| 1  | [Qingyu](https://codeforces.com/profile/Qingyu \"Legendary Grandmaster Qingyu\")           | 157      |\n| 2  | [nik\\_exists](https://codeforces.com/profile/nik%5Fexists \"Expert nik_exists\")           | 150      |\n| 2  | [maspy](https://codeforces.com/profile/maspy \"Legendary Grandmaster maspy\")              | 150      |\n| 4  | [Um\\_nik](https://codeforces.com/profile/Um%5Fnik \"Legendary Grandmaster Um_nik\")        | 144      |\n| 5  | [Errichto](https://codeforces.com/profile/Errichto \"International Grandmaster Errichto\") | 139      |\n| 6  | [adamant](https://codeforces.com/profile/adamant \"Master adamant\")                       | 136      |\n| 7  | [AmShZ](https://codeforces.com/profile/AmShZ \"Grandmaster AmShZ\")                        | 134      |\n| 8  | [maroonrk](https://codeforces.com/profile/maroonrk \"Legendary Grandmaster maroonrk\")     | 133      |\n| 9  | [BledDest](https://codeforces.com/profile/BledDest \"International Grandmaster BledDest\") | 132      |\n| 10 | [qwexd](https://codeforces.com/profile/qwexd \"Master qwexd\")                             | 129      |\n\n|  | [View all →](https://codeforces.com/top-contributed) |\n|  | ---------------------------------------------------- |\n\n→ Find user \n\nHandle: \n\n→ Recent actions \n\n* [root.svp](https://codeforces.com/profile/root.svp \"Newbie root.svp\") → [An question about the comunity of codeforces ](https://codeforces.com/blog/entry/156870) ![Text created or updated](//codeforces.com/codeforces.org/s/66324/images/icons/x-update-12x12.png \"Text created or updated\")\n* [WorldWarV](https://codeforces.com/profile/WorldWarV \"Candidate Master WorldWarV\") → [Codeforces Round 1122 (Div. 3)](https://codeforces.com/blog/entry/156834) ![New comment\\(s\\)](//codeforces.com/codeforces.org/s/66324/images/icons/comment-12x12.png \"New comment(s)\")\n* [AmShZ](https://codeforces.com/profile/AmShZ \"Grandmaster AmShZ\") → [Repovive Premier Round 8 — $300 Prize Pool](https://codeforces.com/blog/entry/156827) ![Text created or updated](//codeforces.com/codeforces.org/s/66324/images/icons/x-update-12x12.png \"Text created or updated\")\n* [turmax](https://codeforces.com/profile/turmax \"Legendary Grandmaster turmax\") → [Are we ready for AGI?](https://codeforces.com/blog/entry/156668) ![New comment\\(s\\)](//codeforces.com/codeforces.org/s/66324/images/icons/comment-12x12.png \"New comment(s)\")\n* [destructive\\_criticism](https://codeforces.com/profile/destructive%5Fcriticism \"Master destructive_criticism\") → [2026 Turkish Team Selection Problems Are Now Public!](https://codeforces.com/blog/entry/156803) ![New comment\\(s\\)](//codeforces.com/codeforces.org/s/66324/images/icons/comment-12x12.png \"New comment(s)\")\n* [mariza\\_CY](https://codeforces.com/profile/mariza%5FCY \"Candidate Master mariza_CY\") → [Balkan OI 2026 teams](https://codeforces.com/blog/entry/153535) ![New comment\\(s\\)](//codeforces.com/codeforces.org/s/66324/images/icons/comment-12x12.png \"New comment(s)\")\n* [qwexd](https://codeforces.com/profile/qwexd \"Master qwexd\") → [Codeforces Round 1121 (Div. 2)](https://codeforces.com/blog/entry/156653) ![New comment\\(s\\)](//codeforces.com/codeforces.org/s/66324/images/icons/comment-12x12.png \"New comment(s)\")\n* [Down\\_bad\\_4\\_haiender288](https://codeforces.com/profile/Down%5Fbad%5F4%5Fhaiender288 \"Pupil Down_bad_4_haiender288\") → [new manmade horrors (barely within comprehension) just dropped](https://codeforces.com/blog/entry/156826) ![New comment\\(s\\)](//codeforces.com/codeforces.org/s/66324/images/icons/comment-12x12.png \"New comment(s)\")\n* [BledDest](https://codeforces.com/profile/BledDest \"International Grandmaster BledDest\") → [Educational Codeforces Round 194 - Editorial](https://codeforces.com/blog/entry/156529) ![New comment\\(s\\)](//codeforces.com/codeforces.org/s/66324/images/icons/comment-12x12.png \"New comment(s)\")\n* [AlirezaBest](https://codeforces.com/profile/AlirezaBest \"Pupil AlirezaBest\") → [Is this thing regular?](https://codeforces.com/blog/entry/156867) ![New comment\\(s\\)](//codeforces.com/codeforces.org/s/66324/images/icons/comment-12x12.png \"New comment(s)\")\n* [ashutosh2711](https://codeforces.com/profile/ashutosh2711 \"Newbie ashutosh2711\") → [I’m Still Bad at CP, But Here Is What 30 Days of Failing Taught Me](https://codeforces.com/blog/entry/156866) ![New comment\\(s\\)](//codeforces.com/codeforces.org/s/66324/images/icons/comment-12x12.png \"New comment(s)\")\n* [brunomont](https://codeforces.com/profile/brunomont \"Master brunomont\") → [tgen::miniblog(5): random graphs with large diameter](https://codeforces.com/blog/entry/156865) ![Text created or updated](//codeforces.com/codeforces.org/s/66324/images/icons/x-update-12x12.png \"Text created or updated\")\n* [DuyMinh3005](https://codeforces.com/profile/DuyMinh3005 \"Pupil DuyMinh3005\") → [Is this acceptable?](https://codeforces.com/blog/entry/155682) ![Text created or updated](//codeforces.com/codeforces.org/s/66324/images/icons/x-update-12x12.png \"Text created or updated\")\n* [UNDERTAKER](https://codeforces.com/profile/UNDERTAKER \"Grandmaster UNDERTAKER\") → [Looking for contests to host — we'll adapt our judge to your problems](https://codeforces.com/blog/entry/156823) ![Text created or updated](//codeforces.com/codeforces.org/s/66324/images/icons/x-update-12x12.png \"Text created or updated\")\n* [Ovi\\_404](https://codeforces.com/profile/Ovi%5F404 \"Pupil Ovi_404\") → [Finally hit 1000 problems solved on Codeforces](https://codeforces.com/blog/entry/156830) ![New comment\\(s\\)](//codeforces.com/codeforces.org/s/66324/images/icons/comment-12x12.png \"New comment(s)\")\n* [yse](https://codeforces.com/profile/yse \"Candidate Master yse\") → [Codeforces Round 1114 (Div. 3) — Editorial](https://codeforces.com/blog/entry/155666) ![New comment\\(s\\)](//codeforces.com/codeforces.org/s/66324/images/icons/comment-12x12.png \"New comment(s)\")\n* [M.Bemanali](https://codeforces.com/profile/M.Bemanali \"Newbie M.Bemanali\") → [QueueForces AGAIN???](https://codeforces.com/blog/entry/156822) ![Text created or updated](//codeforces.com/codeforces.org/s/66324/images/icons/x-update-12x12.png \"Text created or updated\")\n* [BitByBit123](https://codeforces.com/profile/BitByBit123 \"Master BitByBit123\") → [Suspicious Master yql0991666](https://codeforces.com/blog/entry/155862) ![Text created or updated](//codeforces.com/codeforces.org/s/66324/images/icons/x-update-12x12.png \"Text created or updated\")\n* [lumibons](https://codeforces.com/profile/lumibons \"International Grandmaster lumibons\") → [IOI 2027 Call for Tasks](https://codeforces.com/blog/entry/156793) ![Text created or updated](//codeforces.com/codeforces.org/s/66324/images/icons/x-update-12x12.png \"Text created or updated\")\n* [Grizoo](https://codeforces.com/profile/Grizoo \"Candidate Master Grizoo\") → [\\[GYM\\] Aleppo Collegiate Programming Contest 2026](https://codeforces.com/blog/entry/156707) ![New comment\\(s\\)](//codeforces.com/codeforces.org/s/66324/images/icons/comment-12x12.png \"New comment(s)\")\n* [MikeMirzayanov](https://codeforces.com/profile/MikeMirzayanov \"Headquarters, MikeMirzayanov\") → [Rule Restricting the Use of AI \\[revision 2024-09-14\\]](https://codeforces.com/blog/entry/133941) ![Text created or updated](//codeforces.com/codeforces.org/s/66324/images/icons/x-update-12x12.png \"Text created or updated\") ![Necropost](//codeforces.com/codeforces.org/s/66324/images/icons/hourglass.png \"Necropost\")\n* [kondasujay2](https://codeforces.com/profile/kondasujay2 \"International Master kondasujay2\") → [Codeforces Round 1120 (Div 1, Div 2) Editorial](https://codeforces.com/blog/entry/156688) ![New comment\\(s\\)](//codeforces.com/codeforces.org/s/66324/images/icons/comment-12x12.png \"New comment(s)\")\n* [borgar02](https://codeforces.com/profile/borgar02 \"Master borgar02\") → [IATI 2022 editorial](https://codeforces.com/blog/entry/109545) ![New comment\\(s\\)](//codeforces.com/codeforces.org/s/66324/images/icons/comment-12x12.png \"New comment(s)\") ![Necropost](//codeforces.com/codeforces.org/s/66324/images/icons/hourglass.png \"Necropost\")\n* [Kerolloz](https://codeforces.com/profile/Kerolloz \"Newbie Kerolloz\") → [Codeforces JSON-Problem-Scraper API](https://codeforces.com/blog/entry/75074) ![Text created or updated](//codeforces.com/codeforces.org/s/66324/images/icons/x-update-12x12.png \"Text created or updated\") ![Necropost](//codeforces.com/codeforces.org/s/66324/images/icons/hourglass.png \"Necropost\")\n* [sizan147](https://codeforces.com/profile/sizan147 \"Newbie sizan147\") → [2226 — C](https://codeforces.com/blog/entry/156392) ![New comment\\(s\\)](//codeforces.com/codeforces.org/s/66324/images/icons/comment-12x12.png \"New comment(s)\")\n\n|  | [Detailed →](https://codeforces.com/recent-actions) |\n|  | --------------------------------------------------- |\n\n* [pskobx](https://codeforces.com/profile/pskobx)\n* [Blog](https://codeforces.com/blog/pskobx)\n* [Teams](https://codeforces.com/teams/with/pskobx)\n* [Submissions](https://codeforces.com/submissions/pskobx)\n* [Groups](https://codeforces.com/groups/with/pskobx)\n* [Contests](https://codeforces.com/contests/with/pskobx)\n* [Problemsetting](https://codeforces.com/contests/writer/pskobx)\n\n### [pskobx's blog](https://codeforces.com/blog/pskobx)\n\n[ Codeforces Round 1117 (Div. 2) Editorial ](https://codeforces.com/blog/entry/156058) \n\nBy [pskobx](https://codeforces.com/profile/pskobx \"Master pskobx\"), 5 weeks ago, ![In English](//codeforces.com/codeforces.org/s/66324/images/flags/24/gb.png \"In English\") \n\nThank you for participating in our round! We hope you enjoyed the problems.\n\n[2257A - Creating Abbreviations](https://codeforces.com/contest/2257/problem/A \"Codeforces Round 1117 (Div. 2)\") Idea: [egorka5opka](https://codeforces.com/profile/egorka5opka \"Master egorka5opka\")\n\n**Solution**\n\nNote that adding abbreviations to the set $$$S$$$ does not create any new possibilities for creating new abbreviations, because a word starting with that letter already exists. Therefore, for each of the 26 letters, we can remember that there is a word that begins with it, and then go through all the abbreviations and check each letter.\n\n**Code**\n\n[387467084](https://codeforces.com/contest/2257/submission/387467084 \"Submission 387467084 by pskobx\")\n\n**Rate the problem**\n\nAmazing [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nGood [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nOk [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nBad [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nTerrible [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\n[2257B - Gigantomachy](https://codeforces.com/contest/2257/problem/B \"Codeforces Round 1117 (Div. 2)\") Idea: [egorka5opka](https://codeforces.com/profile/egorka5opka \"Master egorka5opka\")\n\n**Solution**\n\nOn each turn, the height at which the giant stands decreases by exactly $$$1$$$, except in cases where he changes mountains. \n\nThus, the first giant will lose after $$$((a\\_1 - a\\_2) + 1) + ((a\\_2 - a\\_3) + 1) + \\\\dots + ((a\\_{n - 1} - a\\_n) + 1) + a\\_n = a\\_1 + n - 1$$$ moves. \n\nSimilarly, the second giant will lose after $$$b\\_1 + m - 1$$$ moves. All left is only to compare these two numbers.\n\nTime complexity: $$$\\\\mathcal{O}(n)$$$.\n\n**Code**\n\n[387467136](https://codeforces.com/contest/2257/submission/387467136 \"Submission 387467136 by pskobx\")\n\n**Rate the problem**\n\nAmazing [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nGood [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nOk [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nBad [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nTerrible [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\n[2257C - Spying on the Beaver](https://codeforces.com/contest/2257/problem/C \"Codeforces Round 1117 (Div. 2)\") Idea: [egorka5opka](https://codeforces.com/profile/egorka5opka \"Master egorka5opka\")\n\n**Solution**\n\nSuppose we have placed some cameras and remove the corresponding edges from the tree. If all the dams are now in different connected components, we can always uniquely determine where the Beaver went. Conversely, if there is a component containing two dams, we cannot distinguish between them.\n\nSince the original graph is a tree, it is necessary and sufficient to remove $$$m-1$$$ edges.\n\nIf the root contains a dam, we can take the edges leading directly to all the other dams, obtaining a set of size $$$m-1$$$.\n\nIf the root does not contain a dam, we take the same edges but skip one of them. It is important that we cannot skip just any edge: we must choose a dam such that there are no other dams on the path from the root to it. We can take the dam with the smallest depth or vertex number. In this case, we do not even need to run a DFS.\n\nTime complexity: $$$\\\\mathcal{O}(n+m)$$$.\n\n**Code**\n\n[387467226](https://codeforces.com/contest/2257/submission/387467226 \"Submission 387467226 by pskobx\")\n\n**Rate the problem**\n\nAmazing [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nGood [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nOk [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nBad [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nTerrible [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\n[2257D - Bermuda Rectangle](https://codeforces.com/contest/2257/problem/D \"Codeforces Round 1117 (Div. 2)\") Idea: [pskobx](https://codeforces.com/profile/pskobx \"Master pskobx\"), [oblememan](https://codeforces.com/profile/oblememan \"Master oblememan\"), [egorka5opka](https://codeforces.com/profile/egorka5opka \"Master egorka5opka\")\n\n**Solution**\n\nBefore processing the queries, let us perform some preprocessing. Find all pairs $$$(a, b)$$$ such that $$$a \\\\cdot b = S$$$. There are $$$\\\\mathcal{O}(\\\\sqrt{S})$$$ such pairs, and they can also be found in $$$\\\\mathcal{O}(\\\\sqrt{S})$$$ time with standard algorithms.\n\nThese pairs are the top-right corners of all possible Bermuda rectangles. The union of these rectangles forms a staircase-like shape; let us call it $$$F$$$. The answer to a query is the area of the intersection of the query rectangle with $$$F$$$.\n\nSort the points by $$$x$$$, and for the point with index $$$i$$$, compute the value $$$P\\_i$$$, equal to the area of $$$F$$$ between $$$0$$$ and this $$$x\\_i$$$.\n\nThis information is enough to answer each query efficiently using binary search. We find the position where the boundary of $$$F$$$ crosses the horizontal side of the query rectangle and calculate the answer using the corresponding prefix areas. The exact formulas and case analysis may vary depending on the implementation.\n\nA couple of remarks that may make implementation easier. If there is a point $$$(x, y)$$$, then there is also $$$(y, x)$$$, and since, knowing one coordinate, it is easy to compute the other. Therefore, it is enough to store just the sorted list of divisors of $$$S$$$ and treat them both as $$$x$$$ and as $$$y$$$. \n\nPreprocessing complexity: $$$\\\\mathcal{O}(\\\\sqrt{S})$$$, time complexity per query: $$$\\\\mathcal{O}(\\\\log S)$$$.\n\n**Code**\n\n[387467301](https://codeforces.com/contest/2257/submission/387467301 \"Submission 387467301 by pskobx\")\n\n**Rate the problem**\n\nAmazing [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nGood [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nOk [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nBad [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nTerrible [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\n[2257E - Busy Beaver](https://codeforces.com/contest/2257/problem/E \"Codeforces Round 1117 (Div. 2)\") Idea: [pskobx](https://codeforces.com/profile/pskobx \"Master pskobx\")\n\n**Solution**\n\nThe first step is to earn as many carrots as possible to maximize our capital. Divide the floors of each building into the shortest consecutive segments whose total profit is non-negative, and calculate the entry threshold of each such segment. The entry threshold is the minimum amount of capital required to construct all floors of the segment in order.\n\nFor example, consider two floors with $$$(a\\_1, a\\_2) = (10, 0)$$$ and $$$(b\\_1, b\\_2) = (0, 100)$$$. Constructing only the first floor is unprofitable, but constructing both floors yields a profit of $$$90$$$ carrots. However, an initial capital of at least $$$10$$$ carrots is required.\n\nIn an ordered set, we keep the next available segment for each building, sorted by its entry threshold. While the segment with the minimum threshold is affordable, we construct the entire segment, add its profit to our capital, and insert the next segment of the same building into the set. If the segment with the minimum threshold is not affordable, then none of the available segments can be constructed, meaning that we have maximized our capital.\n\nIn the second step, we independently try to continue constructing each building from its current height, floor by floor, for as long as the current capital allows. Among all buildings, we choose the maximum resulting height and, in case of a tie, the smallest index.\n\nTime complexity: $$$\\\\mathcal{O}\\\\left(\\\\sum m\\_i \\\\log n\\\\right)$$$.\n\n**Code**\n\n[387467400](https://codeforces.com/contest/2257/submission/387467400 \"Submission 387467400 by pskobx\")\n\n**Rate the problem**\n\nAmazing [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nGood [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nOk [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nBad [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nTerrible [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\n[2257F1 - Beaver's Jumping Track (Easy Version)](https://codeforces.com/contest/2257/problem/F1 \"Codeforces Round 1117 (Div. 2)\") Idea: [pskobx](https://codeforces.com/profile/pskobx \"Master pskobx\"), [oblememan](https://codeforces.com/profile/oblememan \"Master oblememan\"), [egorka5opka](https://codeforces.com/profile/egorka5opka \"Master egorka5opka\")\n\n**Solution**\n\nSince $$$x$$$ is small, we build a segment tree whose vertices store matrices of size $$$x \\\\times x$$$.\n\nFor an interval of platforms, let $$$c\\[i\\]\\[j\\]$$$ be the minimum penalty if the Beaver starts $$$i$$$ cells after the beginning of the interval and first lands $$$j$$$ cells after its end. Invalid starting positions are ignored.\n\nFor a single platform of length $$$d$$$ and penalty $$$s$$$,\n\n$$$ c\\[i\\]\\[j\\]= \\\\left( \\\\left\\\\lceil\\\\frac{d+j-i}{x}\\\\right\\\\rceil-1 \\\\right)s, $$$\n\nwhere $$$0\\\\le i \\\\lt \\\\min(d,x)$$$ and $$$0\\\\le j \\\\lt x$$$. The last jump leaves the platform and causes no penalty, while all previous jumps stay inside it.\n\nTo merge two consecutive intervals $$$A$$$ and $$$B$$$, enumerate the first landing position $$$k$$$ in $$$B$$$:\n\n$$$ c\\_{A+B}\\[i\\]\\[j\\] = \\\\min\\_k\\\\left(c\\_A\\[i\\]\\[k\\]+c\\_B\\[k\\]\\[j\\]\\\\right). $$$\n\nIf $$$A$$$ contains fewer than $$$x$$$ cells, the Beaver may start directly inside $$$B$$$; in this case, we copy the corresponding values from $$$c\\_B$$$.\n\nFor a query $$$\\[l,r\\]$$$, obtain the matrix for $$$\\[l,r-1\\]$$$ and enumerate the first landing position $$$i$$$ on platform $$$r$$$. The answer is\n\n$$$ \\\\min\\_{0\\\\le i \\\\lt \\\\min(x,d\\_r)} \\\\left( c\\[0\\]\\[i\\] + \\\\left\\\\lceil\\\\frac{d\\_r-i-1}{x}\\\\right\\\\rceil s\\_r \\\\right). $$$\n\nThe case $$$l=r$$$ is calculated directly.\n\nEach update and query takes $$$\\\\mathcal{O}(x^3\\\\log n)$$$ time. Memory complexity is $$$\\\\mathcal{O}(nx^2)$$$. Build is $$$\\\\mathcal{O}(nx^3)$$$.\n\n**Code**\n\n[387467533](https://codeforces.com/contest/2257/submission/387467533 \"Submission 387467533 by pskobx\")\n\n**Rate the problem**\n\nAmazing [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nGood [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nOk [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nBad [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nTerrible [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\n[2257F2 - Beaver's Jumping Track (Hard Version)](https://codeforces.com/contest/2257/problem/F2 \"Codeforces Round 1117 (Div. 2)\")\n\n**Solution**\n\nSurprisingly, the main problem with the solution from F1 is memory, not time. A segment tree stores $$$\\\\mathcal{O}(n)$$$ matrices, each containing $$$x^2$$$ values. For $$$x=10$$$, this does not fit into the memory limit.\n\nTo reduce memory usage, divide the platforms into blocks of size $$$B$$$ (for example, $$$B=16$$$). For each block, calculate the matrix of the entire block using the same merging formula as in F1\\. Then build a segment tree only over these block matrices.\n\nFor a query, at most two blocks are only partially covered by the required range. Process the platforms in these blocks separately, and use the segment tree to combine all blocks that are fully covered. After an update, recalculate the matrix of the affected block and update it in the segment tree.\n\nFor a block size $$$B$$$, the memory complexity is $$$\\\\mathcal{O}\\\\left(n+\\\\frac{n}{B}x^2\\\\right)$$$.\n\nEach query takes $$$\\\\mathcal{O}\\\\left(Bx^2+x^3\\\\log\\\\frac{n}{B}\\\\right)$$$.\n\nАnd each update takes $$$\\\\mathcal{O}\\\\left(Bx^3+x^3\\\\log\\\\frac{n}{B}\\\\right)$$$.\n\n**Code**\n\n[387467610](https://codeforces.com/contest/2257/submission/387467610 \"Submission 387467610 by pskobx\")\n\n**Rate the problem**\n\nAmazing [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nGood [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nOk [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nBad [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\nTerrible [ ](https://codeforces.com/data/like?action=like \"I like this\") \n\n![](//codeforces.com/codeforces.org/s/66324/images/icons/paperclip-16x16.png) Tutorial of [Codeforces Round 1117 (Div. 2)](https://codeforces.com/contest/2257) \n\n* [![Vote: I like it](//codeforces.com/codeforces.org/s/66324/images/actions/voteup-gray.png \"Vote: I like it\")](#)\n* \\-139\n* [![Vote: I do not like it](//codeforces.com/codeforces.org/s/66324/images/actions/votedown-gray.png \"Vote: I do not like it\")](#)\n\n* [![Author](//codeforces.com/codeforces.org/s/66324/images/blog/user_16x16.png \"Author\")](https://codeforces.com/profile/pskobx) [pskobx ](https://codeforces.com/profile/pskobx)\n* ![Publication date](//codeforces.com/codeforces.org/s/66324/images/blog/date_16x16.png \"Publication date\") 5 weeks ago\n* [![Comments](//codeforces.com/codeforces.org/s/66324/images/blog/comments_16x16.png \"Comments\")](https://codeforces.com/blog/entry/156058#comments) [218 ](https://codeforces.com/blog/entry/156058#comments)\n\n  \n![Comments](//codeforces.com/codeforces.org/s/66324/images/icons/comments-48x48.png \"Comments\") Comments (218) \n\n[Write comment?](#) \n\n| » [esc\\_qwq](https://codeforces.com/profile/esc%5Fqwq \"Candidate Master esc_qwq\") | 4 weeks ago, [show (+1)](#) # |\n| --------------------------------------------------------------------------------- | ----------------------------- |\n\n| » [ ![](https://codeforces.com/userpic.codeforces.org/4963270/avatar/be164ba8d5d4a72e.jpg) ](https://codeforces.com/profile/esc%5Fqwq) [esc\\_qwq](https://codeforces.com/profile/esc%5Fqwq \"Candidate Master esc_qwq\") | 4 weeks ago, [hide](#) [#](https://codeforces.com/blog/entry/156058?#comment-1386304 \"Link to comment\") \\| [![Vote: I like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-voteup-blue.png \"Vote: I like it\")](#) +83 [![Vote: I do not like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-votedown-blue.png \"Vote: I do not like it\")](#) Horrible contest [→](#) [Reply](#) |\n| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n\n* | » » [jypo\\_CYL](https://codeforces.com/profile/jypo%5FCYL \"Specialist jypo_CYL\") | 4 weeks ago, [show (+1)](#) # |\n| -------------------------------------------------------------------------------- | ----------------------------- |\n\n| » » [ ![](https://codeforces.com/userpic.codeforces.org/3846644/avatar/58b83965b1ab953b.jpg) ](https://codeforces.com/profile/jypo%5FCYL) [jypo\\_CYL](https://codeforces.com/profile/jypo%5FCYL \"Specialist jypo_CYL\") | 4 weeks ago, [hide](#) [#](https://codeforces.com/blog/entry/156058?#comment-1386363 \"Link to comment\") [^](#comment-1386304 \"Parent comment\") \\| [![Vote: I like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-voteup-blue.png \"Vote: I like it\")](#) +3 [![Vote: I do not like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-votedown-blue.png \"Vote: I do not like it\")](#) so bad D [→](#) [Reply](#) |\n| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n\n  * | » » » [unorz](https://codeforces.com/profile/unorz \"Newbie unorz\") | 4 weeks ago, [show (+1)](#) # |\n| ------------------------------------------------------------------ | ----------------------------- |\n\n| » » » [ ![](https://codeforces.com/userpic.codeforces.org/4392235/avatar/9e0dd13ad8852cf4.jpg) ](https://codeforces.com/profile/unorz) [unorz](https://codeforces.com/profile/unorz \"Newbie unorz\") | 4 weeks ago, [hide](#) [#](https://codeforces.com/blog/entry/156058?#comment-1386715 \"Link to comment\") [^](#comment-1386363 \"Parent comment\") \\| [![Vote: I like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-voteup-blue.png \"Vote: I like it\")](#) 0 [![Vote: I do not like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-votedown-blue.png \"Vote: I do not like it\")](#) interesting, i loved D! Really resembled USACO problems [→](#) [Reply](#) |\n| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n\n    * | » » » » [jypo\\_CYL](https://codeforces.com/profile/jypo%5FCYL \"Specialist jypo_CYL\") | 4 weeks ago, [show](#) # |\n| ------------------------------------------------------------------------------------ | ------------------------ |\n\n| » » » » [ ![](https://codeforces.com/userpic.codeforces.org/3846644/avatar/58b83965b1ab953b.jpg) ](https://codeforces.com/profile/jypo%5FCYL) [jypo\\_CYL](https://codeforces.com/profile/jypo%5FCYL \"Specialist jypo_CYL\") | 4 weeks ago, [hide](#) [#](https://codeforces.com/blog/entry/156058?#comment-1386745 \"Link to comment\") [^](#comment-1386715 \"Parent comment\") \\| [![Vote: I like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-voteup-blue.png \"Vote: I like it\")](#) 0 [![Vote: I do not like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-votedown-blue.png \"Vote: I do not like it\")](#) nah it shouldn't be [→](#) [Reply](#) |\n| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n\n| » [Vctqwq](https://codeforces.com/profile/Vctqwq \"Specialist Vctqwq\") | 4 weeks ago, [show (+1)](#) # |\n| --------------------------------------------------------------------- | ----------------------------- |\n\n| » [ ![](https://codeforces.com/userpic.codeforces.org/2479255/avatar/5d52d13c72db55a1.jpg) ](https://codeforces.com/profile/Vctqwq) [Vctqwq](https://codeforces.com/profile/Vctqwq \"Specialist Vctqwq\") | 4 weeks ago, [hide](#) [#](https://codeforces.com/blog/entry/156058?#comment-1386306 \"Link to comment\") \\| [![Vote: I like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-voteup-blue.png \"Vote: I like it\")](#) +42 [![Vote: I do not like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-votedown-blue.png \"Vote: I do not like it\")](#) Super fast editorial! But these statements are difficult to understand :( [→](#) [Reply](#) |\n| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n\n* | » » [RizzCoder](https://codeforces.com/profile/RizzCoder \"Newbie RizzCoder\") | 4 weeks ago, [show](#) # |\n| ---------------------------------------------------------------------------- | ------------------------ |\n\n| » » [ ![](https://codeforces.com/userpic.codeforces.org/5564274/avatar/1049b0e24937ecce.jpg) ](https://codeforces.com/profile/RizzCoder) [RizzCoder](https://codeforces.com/profile/RizzCoder \"Newbie RizzCoder\") | 4 weeks ago, [hide](#) [#](https://codeforces.com/blog/entry/156058?#comment-1386351 \"Link to comment\") [^](#comment-1386306 \"Parent comment\") \\| [![Vote: I like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-voteup-blue.png \"Vote: I like it\")](#) 0 [![Vote: I do not like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-votedown-blue.png \"Vote: I do not like it\")](#) bro editorial is wrong [→](#) [Reply](#) |\n| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n\n| » [zeyd1234](https://codeforces.com/profile/zeyd1234 \"Specialist zeyd1234\") | 4 weeks ago, [show](#) # |\n| --------------------------------------------------------------------------- | ------------------------ |\n\n| » [ ![](https://codeforces.com/userpic.codeforces.org/4840403/avatar/50b684c8412376e6.jpg) ](https://codeforces.com/profile/zeyd1234) [zeyd1234](https://codeforces.com/profile/zeyd1234 \"Specialist zeyd1234\") | 4 weeks ago, [hide](#) [#](https://codeforces.com/blog/entry/156058?#comment-1386311 \"Link to comment\") \\| [![Vote: I like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-voteup-blue.png \"Vote: I like it\")](#) +20 [![Vote: I do not like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-votedown-blue.png \"Vote: I do not like it\")](#) Bad contest... but at least i gain some rating. [→](#) [Reply](#) |\n| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n\n| » [\\-rmq](https://codeforces.com/profile/-rmq \"Specialist -rmq\") | 4 weeks ago, [show (+1)](#) # |\n| ---------------------------------------------------------------- | ----------------------------- |\n\n| » [ ![](https://codeforces.com/userpic.codeforces.org/no-avatar.jpg) ](https://codeforces.com/profile/-rmq) [\\-rmq](https://codeforces.com/profile/-rmq \"Specialist -rmq\") | 4 weeks ago, [hide](#) [#](https://codeforces.com/blog/entry/156058?#comment-1386326 \"Link to comment\") \\| [![Vote: I like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-voteup-blue.png \"Vote: I like it\")](#) 0 [![Vote: I do not like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-votedown-blue.png \"Vote: I do not like it\")](#) Can you recheck, if correct code is attached in the editorial. Seems different submission is present here [pskobx](https://codeforces.com/profile/pskobx) [→](#) [Reply](#) |\n| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n\n* | » » [RizzCoder](https://codeforces.com/profile/RizzCoder \"Newbie RizzCoder\") | 4 weeks ago, [show](#) # |\n| ---------------------------------------------------------------------------- | ------------------------ |\n\n| » » [ ![](https://codeforces.com/userpic.codeforces.org/5564274/avatar/1049b0e24937ecce.jpg) ](https://codeforces.com/profile/RizzCoder) [RizzCoder](https://codeforces.com/profile/RizzCoder \"Newbie RizzCoder\") | 4 weeks ago, [hide](#) [#](https://codeforces.com/blog/entry/156058?#comment-1386333 \"Link to comment\") [^](#comment-1386326 \"Parent comment\") \\| [![Vote: I like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-voteup-blue.png \"Vote: I like it\")](#) 0 [![Vote: I do not like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-votedown-blue.png \"Vote: I do not like it\")](#) yeah I think first has nothing to do with 3 variables [→](#) [Reply](#) |\n| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n* | » » [zeyd1234](https://codeforces.com/profile/zeyd1234 \"Specialist zeyd1234\") | 4 weeks ago, [show](#) # |\n| ----------------------------------------------------------------------------- | ------------------------ |\n\n| » » [ ![](https://codeforces.com/userpic.codeforces.org/4840403/avatar/50b684c8412376e6.jpg) ](https://codeforces.com/profile/zeyd1234) [zeyd1234](https://codeforces.com/profile/zeyd1234 \"Specialist zeyd1234\") | 4 weeks ago, [hide](#) [#](https://codeforces.com/blog/entry/156058?#comment-1386338 \"Link to comment\") [^](#comment-1386326 \"Parent comment\") \\| [←](#)Rev. 2 [→](#) [![Vote: I like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-voteup-blue.png \"Vote: I like it\")](#) 0 [![Vote: I do not like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-votedown-blue.png \"Vote: I do not like it\")](#) type (user:XXX), if you want to ping someone. But with \\[\\], instead of (). But if you don't want to get your contribution < -100, please, don't ping someone unless necessary. [→](#) [Reply](#) |\n| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n* | » » [pskobx](https://codeforces.com/profile/pskobx \"Master pskobx\") | 4 weeks ago, [show](#) # |\n| ------------------------------------------------------------------- | ------------------------ |\n\n| » » [ ![](https://codeforces.com/userpic.codeforces.org/1250475/avatar/7536d700942a822b.jpg) ](https://codeforces.com/profile/pskobx) [pskobx](https://codeforces.com/profile/pskobx \"Master pskobx\") | 4 weeks ago, [hide](#) [#](https://codeforces.com/blog/entry/156058?#comment-1386346 \"Link to comment\") [^](#comment-1386326 \"Parent comment\") \\| [![Vote: I like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-voteup-blue.png \"Vote: I like it\")](#) 0 [![Vote: I do not like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-votedown-blue.png \"Vote: I do not like it\")](#) I'll fix it now, thanks [→](#) [Reply](#) |\n| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n\n| » [20111019Yu](https://codeforces.com/profile/20111019Yu \"Master 20111019Yu\") | 4 weeks ago, [show](#) # |\n| ----------------------------------------------------------------------------- | ------------------------ |\n\n| » [ ![](https://codeforces.com/userpic.codeforces.org/3490545/avatar/2b7d9f312416805a.jpg) ](https://codeforces.com/profile/20111019Yu) [20111019Yu](https://codeforces.com/profile/20111019Yu \"Master 20111019Yu\") | 4 weeks ago, [hide](#) [#](https://codeforces.com/blog/entry/156058?#comment-1386329 \"Link to comment\") \\| [![Vote: I like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-voteup-blue.png \"Vote: I like it\")](#) +8 [![Vote: I do not like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-votedown-blue.png \"Vote: I do not like it\")](#) How dare you write the wrong range? [→](#) [Reply](#) |\n| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n\n| » [bandit07](https://codeforces.com/profile/bandit07 \"Pupil bandit07\") | 4 weeks ago, [show](#) # |\n| ---------------------------------------------------------------------- | ------------------------ |\n\n| » [ ![](https://codeforces.com/userpic.codeforces.org/5022929/avatar/9f7f959d1770105a.jpg) ](https://codeforces.com/profile/bandit07) [bandit07](https://codeforces.com/profile/bandit07 \"Pupil bandit07\") | 4 weeks ago, [hide](#) [#](https://codeforces.com/blog/entry/156058?#comment-1386332 \"Link to comment\") \\| [![Vote: I like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-voteup-blue.png \"Vote: I like it\")](#) 0 [![Vote: I do not like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-votedown-blue.png \"Vote: I do not like it\")](#) Apart from Figuring out TLE on D, everything was great! [→](#) [Reply](#) |\n| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n\n| » [zhaohongdi114514](https://codeforces.com/profile/zhaohongdi114514 \"Candidate Master zhaohongdi114514\") | 4 weeks ago, [show (+1)](#) # |\n| --------------------------------------------------------------------------------------------------------- | ----------------------------- |\n\n| » [ ![](https://codeforces.com/userpic.codeforces.org/no-avatar.jpg) ](https://codeforces.com/profile/zhaohongdi114514) [zhaohongdi114514](https://codeforces.com/profile/zhaohongdi114514 \"Candidate Master zhaohongdi114514\") | 4 weeks ago, [hide](#) [#](https://codeforces.com/blog/entry/156058?#comment-1386334 \"Link to comment\") \\| [![Vote: I like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-voteup-blue.png \"Vote: I like it\")](#) +35 [![Vote: I do not like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-votedown-blue.png \"Vote: I do not like it\")](#) Felt like eating shit. [→](#) [Reply](#) |\n| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n\n* | » » [ma\\_niu\\_bi](https://codeforces.com/profile/ma%5Fniu%5Fbi \"Expert ma_niu_bi\") | 4 weeks ago, [show](#) # |\n| ---------------------------------------------------------------------------------- | ------------------------ |\n\n| » » [ ![](https://codeforces.com/userpic.codeforces.org/2710300/avatar/1c5c34a0e21a0f46.jpg) ](https://codeforces.com/profile/ma%5Fniu%5Fbi) [ma\\_niu\\_bi](https://codeforces.com/profile/ma%5Fniu%5Fbi \"Expert ma_niu_bi\") | 4 weeks ago, [hide](#) [#](https://codeforces.com/blog/entry/156058?#comment-1386672 \"Link to comment\") [^](#comment-1386334 \"Parent comment\") \\| [←](#)Rev. 3 [→](#) [![Vote: I like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-voteup-blue.png \"Vote: I like it\")](#) +3 [![Vote: I do not like it](//codeforces.com/codeforces.org/s/66324/images/actions/comment-votedown-blue.png \"Vote: I do not like it\")](#) My brain's full of shit. [→](#) [Reply](#) |\n| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n\n| » [invoker.\\_](https://codeforces.com/profile/invoker.%5F \"Pupil invoker._\") | 4 weeks ago, [show (+1)](#) # |\n| ---------------------------------------------------------------------------- | ----------------------------- |\n\n\n...377288 bytes truncated...\n\nThe tool call succeeded but the output was truncated. Full output saved to: /Users/zayd/.local/share/opencode/tool-output/tool_0b22d3b3f001vk23QsjmAlyxZn\nUse the Task tool to have explore agent process this file with Grep and Read (with offset/limit). Do NOT read the full file yourself - delegate to save context.",
            "metadata": {
              "truncated": true,
              "outputPath": "/Users/zayd/.local/share/opencode/tool-output/tool_0b22d3b3f001vk23QsjmAlyxZn"
            },
            "title": "https://codeforces.com/blog/entry/156058 (text/markdown; charset=utf-8)",
            "time": {
              "start": 1789695674527,
              "end": 1789695703873
            }
          },
          "metadata": {
            "openai": {
              "itemId": "fc_05dd23b8316346ef016aac96b9aa9887d0bd64daf1a26c2425"
            }
          },
          "id": "prt_0b22cc570001MFj6efTuorcITZ",
          "sessionID": "ses_f4dd34ebfffe4NbqINDH2O108A",
          "messageID": "msg_0b22cb3260014PqLGayQmyK0KX"
        },
        {
          "reason": "tool-calls",
          "type": "step-finish",
          "tokens": {
            "total": 9713,
            "input": 5073,
            "output": 32,
            "reasoning": 0,
            "cache": {
              "write": 0,
              "read": 4608
            }
          },
          "cost": 0,
          "id": "prt_0b22d3b45001VNXcTqNgc3NfA4",
          "sessionID": "ses_f4dd34ebfffe4NbqINDH2O108A",
          "messageID": "msg_0b22cb3260014PqLGayQmyK0KX"
        }
      ]
    },
    {
      "info": {
        "parentID": "msg_0b22cb299001yjP9BIfiRrO5rJ",
        "role": "assistant",
        "mode": "nudge-generation",
        "agent": "nudge-generation",
        "variant": "low",
        "path": {
          "cwd": "/private/var/folders/t7/b_w5m78j2mbb1ct051p9sv500000gn/T/nudge-opencode-generation-YuktRa",
          "root": "/"
        },
        "cost": 0,
        "tokens": {
          "total": 21921,
          "input": 12531,
          "output": 276,
          "reasoning": 26,
          "cache": {
            "write": 0,
            "read": 9088
          }
        },
        "modelID": "gpt-6-astra",
        "providerID": "openai",
        "time": {
          "created": 1789695703882,
          "completed": 1789695719684
        },
        "finish": "tool-calls",
        "id": "msg_0b22d3b4a001L5ZJsUqZlBec2r",
        "sessionID": "ses_f4dd34ebfffe4NbqINDH2O108A"
      },
      "parts": [
        {
          "type": "step-start",
          "id": "prt_0b22d50d2001ZXliosqKDWk75g",
          "sessionID": "ses_f4dd34ebfffe4NbqINDH2O108A",
          "messageID": "msg_0b22d3b4a001L5ZJsUqZlBec2r"
        },
        {
          "type": "reasoning",
          "text": "**Preparing in-memory verification script**",
          "time": {
            "start": 1789695709396,
            "end": 1789695712883
          },
          "metadata": {
            "openai": {
              "itemId": "rs_0f7aa7a79354791e016aac96dd4d4887d09c8415358718f059",
              "reasoningEncryptedContent": "gAAAAABqrJbgaT_tm99Z2rwqRvLin_GQIM08IwDjq0uekuGP_vxRK86UaUVKW-giQ3BwVMNPIQYSAc6jpaswH8Fi_jnfToHGus8iuVfvYixd7IcxiHzChFQ50kZMXSYhe3hBwMYpM1qE2WwwvdtYl2mXOnhSzdSN04-VB2J1MHcmGpW33_fMCILeJDgEDLJWZxkKMV52TLKKP7PAV4ckbz2JH7w7EiTPTCGQZwFvCEh69g5XmMFEUWYkwT1nKaingx3pwZfM6jVTtEM5qrxfoWChVyqu6tJV0UtI5nngLeh2sRja3sgKDBVRvwToAlcjA_LwjrrSXfc9O6jhW7Z_5ZS9ld4-XkQqpy4YE3ZdSUf9Vvq7tzGtKikFZdrWByU5b30C0pRT0a93qV_O0ls8IEs7LhdEqRX0tTXZ4dx_ncto4Rc2nLKpv5yvLik9sZaruxMWqP9A4Am5k5S1uN7l0KafLJmFIcknbeP-9cEWxPVCZVosn8QYDfPghHVQ2tD5i7p7W-JMPYnKyTk9tZD1ZqcwJDUDXo80ubWixOeI1DsyrBohRB5wYBIfttBMKP0NXmI6ErrZgKzhsochAga8Do2HmWqHlKwHRhVsBoTHSvwdEYmNbwLbYfBeaO9zR-AUrEm6FKPBz-rsr29rYtxS118M3bvDWaoxKsFyF9z1M-osvl7k4beqVqYGJQ2VL5P5MbLsC-rDpjF0COm6om_qqbT9vm81ba3EloX0eHHqrMZa7iV_VqpGHWUE-SUpF9jHi7Hm_b4Qbn9tf9w-Qqv8b0yNcJ_nCDP0i3Vf-dWi5YgMg3bg4vKGIRrDDicYyhXxXQMgjrrqiskORKkGtjXxeo4rv41eQRX5kIyrlzHPkLJx7U7r1MKpofLR60evPji__4bup8XwF28RM-5EwTIVatdmnlUqzi_q1w_nez6j9_JZNYwAeIMtx6jgiLiGz8kA52PoablqGonSVfScUrt2VtEKZtoeagZEdGLFslC-NEWvFhYjbFldmjvPuoKs8JacLDcfqjZ1XhbKC1m1CsiI1Cp0Ja5P0z-s8g1QSWQIyNR8sx1ELcFt9EO7cI4VSoGLK3cOjBLRjOVi5F2qXsP5r6vxDd1UFjnb2HWoOrO52ibMTRMVPeqMrWRAw0879fIXsRRiAqWIXU-IlT0dNc1TdCxsmoPVsgTfFz-gnXuTBWVhTqvuj94AkhXO2CVUnBU8yQFEv6qBmXhFtxpwNZ9_Ax4WMWu5723IRG6eyDBLqVBBr1k3yRqwvRuXUk0HIgHscz0Kf16nOgbkY4f487i12Q7YvRH7H0IAQ3zdGP1Yt8BWvDcDbbV6ImKRa8ZlRA7shPYHObFGnL5LNI1r9-kfre9O2xGBWNfvORbULi3kPOEZL1NRoMRyL3bluHmaIaDK08e2NbjdDgVZU6RSSn-mYQ6f9NWLXWfWsCdUyBu1de2-cVRGyQiESulzBEwuuq8xF2gFrUQkIymo"
            }
          },
          "id": "prt_0b22d50d4001XQ56SLYZw71FYO",
          "sessionID": "ses_f4dd34ebfffe4NbqINDH2O108A",
          "messageID": "msg_0b22d3b4a001L5ZJsUqZlBec2r"
        },
        {
          "type": "tool",
          "tool": "bash",
          "callID": "call_wDUt85bsqdNJxxBZPzljoSIE",
          "state": {
            "status": "completed",
            "input": {
              "command": "python3 -c 'from itertools import combinations_with_replacement\nranges=[list(reversed(c)) for n in range(1,5) for c in combinations_with_replacement(range(1,6),n)]\ndef durability(a):\n a=a[:]; i=0; hits=0\n while True:\n  a[i]-=1; hits+=1\n  if i+1<len(a) and a[i]<a[i+1]: i+=1\n  elif i+1==len(a) and a[i]==0: return hits\nfor a in ranges:\n assert durability(a)==a[0]+len(a)-1, a\nsamples=[([1],[1],1),([1],[2],2),([4],[4,1],2),([4,3,2,1],[10,1],2),([4,3,2,1],[6,5],1),([4,3,2,1],[7,5],2)]\nfor a,b,w in samples:\n assert (1 if durability(a)>=durability(b) else 2)==w\nprint(f\"Verified {len(ranges)} small non-increasing ranges and all 6 samples.\")'"
            },
            "output": "Verified 125 small non-increasing ranges and all 6 samples.\n",
            "metadata": {
              "output": "Verified 125 small non-increasing ranges and all 6 samples.\n",
              "exit": 0,
              "truncated": false
            },
            "title": "python3 -c 'from itertools import combinations_with_replacement\nranges=[list(reversed(c)) for n in range(1,5) for c in combinations_with_replacement(range(1,6),n)]\ndef durability(a):\n a=a[:]; i=0; hits=0\n while True:\n  a[i]-=1; hits+=1\n  if i+1<len(a) and a[i]<a[i+1]: i+=1\n  elif i+1==len(a) and a[i]==0: return hits\nfor a in ranges:\n assert durability(a)==a[0]+len(a)-1, a\nsamples=[([1],[1],1),([1],[2],2),([4],[4,1],2),([4,3,2,1],[10,1],2),([4,3,2,1],[6,5],1),([4,3,2,1],[7,5],2)]\nfor a,b,w in samples:\n assert (1 if durability(a)>=durability(b) else 2)==w\nprint(f\"Verified {len(ranges)} small non-increasing ranges and all 6 samples.\")'",
            "time": {
              "start": 1789695719445,
              "end": 1789695719503
            }
          },
          "metadata": {
            "openai": {
              "itemId": "fc_0f7aa7a79354791e016aac96e0c63087d0808374e5d9533bad"
            }
          },
          "id": "prt_0b22d5e7c001gJ0Fk1D4o33UjW",
          "sessionID": "ses_f4dd34ebfffe4NbqINDH2O108A",
          "messageID": "msg_0b22d3b4a001L5ZJsUqZlBec2r"
        },
        {
          "reason": "tool-calls",
          "type": "step-finish",
          "tokens": {
            "total": 21921,
            "input": 12531,
            "output": 276,
            "reasoning": 26,
            "cache": {
              "write": 0,
              "read": 9088
            }
          },
          "cost": 0,
          "id": "prt_0b22d7901001MlNj1hv7sg2gvf",
          "sessionID": "ses_f4dd34ebfffe4NbqINDH2O108A",
          "messageID": "msg_0b22d3b4a001L5ZJsUqZlBec2r"
        }
      ]
    },
    {
      "info": {
        "parentID": "msg_0b22cb299001yjP9BIfiRrO5rJ",
        "role": "assistant",
        "mode": "nudge-generation",
        "agent": "nudge-generation",
        "variant": "low",
        "path": {
          "cwd": "/private/var/folders/t7/b_w5m78j2mbb1ct051p9sv500000gn/T/nudge-opencode-generation-YuktRa",
          "root": "/"
        },
        "cost": 0,
        "tokens": {
          "total": 23415,
          "input": 698,
          "output": 1469,
          "reasoning": 0,
          "cache": {
            "write": 0,
            "read": 21248
          }
        },
        "modelID": "gpt-6-astra",
        "providerID": "openai",
        "time": {
          "created": 1789695719685,
          "completed": 1789695766281
        },
        "finish": "tool-calls",
        "structured": {
          "status": "success",
          "reason": null,
          "hints": [
            {
              "order": 1,
              "content": "Don't simulate billions of boulder throws. Focus on one giant: how many opponent hits does it take before he reaches height $0$ on his last mountain?"
            },
            {
              "order": 2,
              "content": "A giant leaves a mountain before it is necessarily destroyed. If the current mountain originally has height $h_i$ and the next has height $h_{i+1}$, the jump happens once the current height becomes strictly less than $h_{i+1}$."
            },
            {
              "order": 3,
              "content": "Moving from mountain $i$ to mountain $i+1$ takes $h_i-h_{i+1}+1$ hits. The extra $1$ matters: equal heights do not trigger a jump. The final mountain takes another $h_k$ hits."
            },
            {
              "order": 4,
              "content": "Add those hit counts:\n$$\\sum_{i=1}^{k-1}(h_i-h_{i+1}+1)+h_k.$$\nThe height differences telescope. Everything except the first height and the number of mountains disappears."
            },
            {
              "order": 5,
              "content": "The defeat thresholds are $A=a_1+n-1$ for Bea and $B=b_1+m-1$ for Ver. Bea attacks first, so he wins when $A\\ge B$, including equality. Otherwise, Ver wins. Read every height, but only keep the first height of each range."
            }
          ],
          "editorial": "The game looks like a simulation, but the useful question is much smaller: **how many hits does each giant need to receive before losing?**\n\nAdding all mountain heights is a trap. A giant can abandon a mountain while most of it is still standing. We're counting hits, not doing demolition accounting.\n\n### Count hits for one range\n\nConsider a range with heights\n$$h_1\\ge h_2\\ge\\dots\\ge h_k.$$\n\nWhen the giant reaches mountain $i$, it still has its original height $h_i$: previous attacks targeted only the mountains he stood on earlier.\n\nFor $i<k$, he jumps when his current mountain becomes **strictly lower** than the next one. After $h_i-h_{i+1}$ hits, their heights are equal, so he stays. One more hit triggers the jump. Therefore, this stage takes\n$$h_i-h_{i+1}+1$$\nhits.\n\nThe next mountain is untouched, and its height is at least the height of the mountain after it, so no additional jump is immediately needed. The same reasoning applies at every stage.\n\nOn the last mountain, there is nowhere else to go. Reducing its height from $h_k$ to $0$ takes exactly $h_k$ hits.\n\nThus, the number of hits needed to defeat this giant is\n$$\\begin{aligned}\nH&=(h_1-h_2+1)+(h_2-h_3+1)+\\dots+(h_{k-1}-h_k+1)+h_k\\\\\n &=h_1+k-1.\n\\end{aligned}$$\n\nAll intermediate heights cancel. **Only the first height and the number of mountains matter.** This also works for a single mountain: the sum of transition costs is empty, leaving $H=h_1$.\n\n### Account for who attacks first\n\nLet\n$$A=a_1+n-1,\\qquad B=b_1+m-1.$$\n\nBea needs $B$ attacks to defeat Ver, while Ver needs $A$ attacks to defeat Bea.\n\n- If $A\\ge B$, Bea gets to make his $B$-th attack after receiving only $B-1$ attacks. He is still alive and wins.\n- If $A<B$, Ver gets to make his $A$-th attack after receiving $A$ attacks. Since $A<B$, Ver is still alive and wins.\n\nSo the answer is **$1$ if $A\\ge B$, otherwise $2$**. Equal thresholds favor Bea because he attacks first.\n\nFor example, with $a=[4,3,2,1]$ and $b=[6,5]$, both thresholds are $7$. Bea lands the seventh hit first, so he wins despite having a smaller first mountain.\n\n### Algorithm\n\nFor each test case:\n\n1. Read $n$ and $m$.\n2. Read all of Bea's heights, keeping only $a_1$.\n3. Read all of Ver's heights, keeping only $b_1$.\n4. Compare $a_1+n-1$ and $b_1+m-1$, and print the winner.\n\nYou must still consume every input value, even though the later heights do not affect the comparison. No arrays or sorting are needed.\n\n### Correctness argument\n\nFor every non-final mountain $i$, exactly $h_i-h_{i+1}+1$ opponent hits are necessary and sufficient to trigger the jump to the next mountain. The final mountain requires exactly $h_k$ hits to reach zero. Summing these costs proves that a range's defeat threshold is $h_1+k-1$.\n\nTherefore, Bea's and Ver's thresholds are exactly $A$ and $B$. If $A\\ge B$, Bea survives the $B-1$ attacks preceding his winning attack. Otherwise, Ver survives the $A$ attacks preceding his winning attack. The algorithm outputs the correct winner in both cases.\n\n### Complexity\n\nReading the input takes $O(n+m)$ time per test case. The comparison takes $O(1)$ time, and the algorithm uses $O(1)$ auxiliary space. The implementation uses `long long` for the heights and thresholds.",
          "solution": "#include <bits/stdc++.h>\nusing namespace std;\n\nusing ll = long long;\n\nvoid setIO() {\n    ios::sync_with_stdio(false);\n    cin.tie(nullptr);\n}\n\nint main() {\n    setIO();\n\n    int t;\n    cin >> t;\n    while (t--) {\n        int n, m;\n        cin >> n >> m;\n\n        ll a = 0, b = 0, h;\n        for (int i = 0; i < n; ++i) {\n            cin >> h;\n            if (i == 0) a = h;\n        }\n        for (int i = 0; i < m; ++i) {\n            cin >> h;\n            if (i == 0) b = h;\n        }\n\n        cout << (a + n - 1 >= b + m - 1 ? 1 : 2) << '\\n';\n    }\n}\n"
        },
        "id": "msg_0b22d7905001v3TvBPUiPFI6dQ",
        "sessionID": "ses_f4dd34ebfffe4NbqINDH2O108A"
      },
      "parts": [
        {
          "type": "step-start",
          "id": "prt_0b22d867f001mJy50afaKxgjLp",
          "sessionID": "ses_f4dd34ebfffe4NbqINDH2O108A",
          "messageID": "msg_0b22d7905001v3TvBPUiPFI6dQ"
        },
        {
          "type": "tool",
          "tool": "StructuredOutput",
          "callID": "call_Fxp5ELemdw1Tg6URE2pds7zt",
          "state": {
            "status": "completed",
            "input": {
              "status": "success",
              "reason": null,
              "hints": [
                {
                  "order": 1,
                  "content": "Don't simulate billions of boulder throws. Focus on one giant: how many opponent hits does it take before he reaches height $0$ on his last mountain?"
                },
                {
                  "order": 2,
                  "content": "A giant leaves a mountain before it is necessarily destroyed. If the current mountain originally has height $h_i$ and the next has height $h_{i+1}$, the jump happens once the current height becomes strictly less than $h_{i+1}$."
                },
                {
                  "order": 3,
                  "content": "Moving from mountain $i$ to mountain $i+1$ takes $h_i-h_{i+1}+1$ hits. The extra $1$ matters: equal heights do not trigger a jump. The final mountain takes another $h_k$ hits."
                },
                {
                  "order": 4,
                  "content": "Add those hit counts:\n$$\\sum_{i=1}^{k-1}(h_i-h_{i+1}+1)+h_k.$$\nThe height differences telescope. Everything except the first height and the number of mountains disappears."
                },
                {
                  "order": 5,
                  "content": "The defeat thresholds are $A=a_1+n-1$ for Bea and $B=b_1+m-1$ for Ver. Bea attacks first, so he wins when $A\\ge B$, including equality. Otherwise, Ver wins. Read every height, but only keep the first height of each range."
                }
              ],
              "editorial": "The game looks like a simulation, but the useful question is much smaller: **how many hits does each giant need to receive before losing?**\n\nAdding all mountain heights is a trap. A giant can abandon a mountain while most of it is still standing. We're counting hits, not doing demolition accounting.\n\n### Count hits for one range\n\nConsider a range with heights\n$$h_1\\ge h_2\\ge\\dots\\ge h_k.$$\n\nWhen the giant reaches mountain $i$, it still has its original height $h_i$: previous attacks targeted only the mountains he stood on earlier.\n\nFor $i<k$, he jumps when his current mountain becomes **strictly lower** than the next one. After $h_i-h_{i+1}$ hits, their heights are equal, so he stays. One more hit triggers the jump. Therefore, this stage takes\n$$h_i-h_{i+1}+1$$\nhits.\n\nThe next mountain is untouched, and its height is at least the height of the mountain after it, so no additional jump is immediately needed. The same reasoning applies at every stage.\n\nOn the last mountain, there is nowhere else to go. Reducing its height from $h_k$ to $0$ takes exactly $h_k$ hits.\n\nThus, the number of hits needed to defeat this giant is\n$$\\begin{aligned}\nH&=(h_1-h_2+1)+(h_2-h_3+1)+\\dots+(h_{k-1}-h_k+1)+h_k\\\\\n &=h_1+k-1.\n\\end{aligned}$$\n\nAll intermediate heights cancel. **Only the first height and the number of mountains matter.** This also works for a single mountain: the sum of transition costs is empty, leaving $H=h_1$.\n\n### Account for who attacks first\n\nLet\n$$A=a_1+n-1,\\qquad B=b_1+m-1.$$\n\nBea needs $B$ attacks to defeat Ver, while Ver needs $A$ attacks to defeat Bea.\n\n- If $A\\ge B$, Bea gets to make his $B$-th attack after receiving only $B-1$ attacks. He is still alive and wins.\n- If $A<B$, Ver gets to make his $A$-th attack after receiving $A$ attacks. Since $A<B$, Ver is still alive and wins.\n\nSo the answer is **$1$ if $A\\ge B$, otherwise $2$**. Equal thresholds favor Bea because he attacks first.\n\nFor example, with $a=[4,3,2,1]$ and $b=[6,5]$, both thresholds are $7$. Bea lands the seventh hit first, so he wins despite having a smaller first mountain.\n\n### Algorithm\n\nFor each test case:\n\n1. Read $n$ and $m$.\n2. Read all of Bea's heights, keeping only $a_1$.\n3. Read all of Ver's heights, keeping only $b_1$.\n4. Compare $a_1+n-1$ and $b_1+m-1$, and print the winner.\n\nYou must still consume every input value, even though the later heights do not affect the comparison. No arrays or sorting are needed.\n\n### Correctness argument\n\nFor every non-final mountain $i$, exactly $h_i-h_{i+1}+1$ opponent hits are necessary and sufficient to trigger the jump to the next mountain. The final mountain requires exactly $h_k$ hits to reach zero. Summing these costs proves that a range's defeat threshold is $h_1+k-1$.\n\nTherefore, Bea's and Ver's thresholds are exactly $A$ and $B$. If $A\\ge B$, Bea survives the $B-1$ attacks preceding his winning attack. Otherwise, Ver survives the $A$ attacks preceding his winning attack. The algorithm outputs the correct winner in both cases.\n\n### Complexity\n\nReading the input takes $O(n+m)$ time per test case. The comparison takes $O(1)$ time, and the algorithm uses $O(1)$ auxiliary space. The implementation uses `long long` for the heights and thresholds.",
              "solution": "#include <bits/stdc++.h>\nusing namespace std;\n\nusing ll = long long;\n\nvoid setIO() {\n    ios::sync_with_stdio(false);\n    cin.tie(nullptr);\n}\n\nint main() {\n    setIO();\n\n    int t;\n    cin >> t;\n    while (t--) {\n        int n, m;\n        cin >> n >> m;\n\n        ll a = 0, b = 0, h;\n        for (int i = 0; i < n; ++i) {\n            cin >> h;\n            if (i == 0) a = h;\n        }\n        for (int i = 0; i < m; ++i) {\n            cin >> h;\n            if (i == 0) b = h;\n        }\n\n        cout << (a + n - 1 >= b + m - 1 ? 1 : 2) << '\\n';\n    }\n}\n"
            },
            "output": "Structured output captured successfully.",
            "metadata": {
              "valid": true
            },
            "title": "Structured Output",
            "time": {
              "start": 1789695766051,
              "end": 1789695766053
            }
          },
          "metadata": {
            "openai": {
              "itemId": "fc_09e8010c88239799016aac96eae68487d0a13d175c18a0db16"
            }
          },
          "id": "prt_0b22d86820014rLReoUHVnaNy5",
          "sessionID": "ses_f4dd34ebfffe4NbqINDH2O108A",
          "messageID": "msg_0b22d7905001v3TvBPUiPFI6dQ"
        },
        {
          "reason": "tool-calls",
          "type": "step-finish",
          "tokens": {
            "total": 23415,
            "input": 698,
            "output": 1469,
            "reasoning": 0,
            "cache": {
              "write": 0,
              "read": 21248
            }
          },
          "cost": 0,
          "id": "prt_0b22e2f06001NIBxvBYmOyLQ56",
          "sessionID": "ses_f4dd34ebfffe4NbqINDH2O108A",
          "messageID": "msg_0b22d7905001v3TvBPUiPFI6dQ"
        }
      ]
    }
  ]
}
