cp.nvim/tests/fixtures/codechef_START209D_P3209.json
2025-10-25 00:26:33 -04:00

85 lines
11 KiB
JSON

{
"category_name": "main",
"contest_code": "START209D",
"contest_name": "Starters 209 (Rated)",
"status": "success",
"submit_error": "You need to login to submit.",
"is_verified": false,
"problem_code": "P3209",
"contest_category": "9",
"problem_name": "Small GCD Sort",
"intended_contest_code": "START209",
"body": "This is an example problem statement in markdown, and a mini guide on writing statements. Please make sure to remove everything here before publishing your problem.\n\n- Codechef uses markdown for its problem statements. Markdown syntax can be found [here](https:\/\/github.com\/showdownjs\/showdown\/wiki\/Showdown's-Markdown-syntax). Note the `[text](link)` syntax to insert a hyperlink.\n- Codechef also uses $\\LaTeX$ to render mathematical expressions, and you are advised to make liberal use of it to make your statement look good.\n- Text can be made **bold** or *italicized*.\n- **Do not** use HTML tags (p, ul, li, pre, br, ...) in the statement.\n- To insert an image, first upload it to an online hosting service (for an official contest, ask a Codechef admin to do this for you \u2014 this is important) and then use the following syntax: `![alt text](link-to-image)`.\n- If your problem doesn't contain subtasks, ensure that the Subtasks section below is disabled and **all content is deleted from it**.\n\nIf you face any issues, either contact a Codechef admin directly or send us an email at help@codechef.com.\n\nBelow is an example problem statement that uses some of the above-mentioned features.\n\n---------\n\nChef has a simple undirected graph $G$ with $N$ vertices and $M$ edges. A [subgraph](https:\/\/mathworld.wolfram.com\/Subgraph.html) $H$ of $G$ is called *good* if:\n- $H$ is connected\n- $H$ contains all $N$ vertices of $G$\n- There is a unique path between any two vertices in $H$, using only edges in $H$\n\nCount the number of *good* subgraphs of $G$. Since this number might be large, report it modulo $10^9 + 7$.\n\nIn other news, here's a completely unrelated image:\n\n![](https:\/\/s3.amazonaws.com\/codechef_shared\/download\/Images\/START41\/ss3.png).\n\n\n<aside style='background: #f8f8f8;padding: 10px 15px;'><div>All submissions for this problem are available.<\/div><\/aside>",
"problemComponents": {
"constraints": "- $1 \\leq T \\leq 100$\n- $1 \\leq N \\leq 100$",
"constraintsState": true,
"subtasks": "- **Subtask 1 (10 points):** $1 \\leq M \\leq 10$\n- **Subtask 2 (20 points):** The sum of $N$ across all test cases won't exceed $20$.\n- **Subtask 3 (70 points):** No further constraints.",
"subtasksState": false,
"statement": "There are $N$ players, numbered from $1$ to $N$.\n\nPlayer $i$'s score is defined to be $\\gcd(i, N)$. \nHere, $\\gcd(i, N)$ refers to the largest positive integer that divides both $i$ and $N$.\n\nYour task is to find an ordering of the players, from left to right, that satisfies the following conditions:\n- Between two players with different scores, the one with a higher score must appear somewhere to the left of the one with a lower score.\n- Between two players with the same score, the player with a smaller number must appear somewhere to the left of the one with a lower score.\n\nIt can be proved that these rules uniquely define an ordering of the $N$ people. \nYour task is to find this ordering.",
"inputFormat": "- The first line contains a single integer $T$ \u2014 the number of test cases.\n- Each of the next $T$ lines contains a single integer $N$ \u2014 the number of players.",
"inputFormatState": true,
"outputFormat": "For each test case, print $N$ space-separated integers on a new line \u2014 the player numbers in the required preference order.\n",
"outputFormatState": true,
"sampleTestCases": [
{
"id": "1",
"input": "5\n1\n2\n3\n4\n5",
"output": "1\n2 1\n3 1 2\n4 2 1 3\n5 1 2 3 4",
"explanation": "**Test case $1$:** There is only one player.\n\n**Test case $2$:** There are two players. \nPlayer $1$ has a score of $\\gcd(1, 2) = 1$, while player $2$ has a score of $\\gcd(2, 2) = 2$. \nPlayer $2$ has a higher score, and so appears to the left of player $1$, making the only possible order $[2, 1]$.\n\n**Test case $4$:** There are four players. It can be verified that players $1$ and $3$ have a score of $1$, player $2$ has a score of $2$, and player $4$ has a score of $4$. \nSo,\n- Player $4$ has the highest score, and so must be placed first.\n- Player $2$ has the second highest score, and so must be placed second.\n- Players $1$ and $3$ have the same score. \nAmong them, $1$ has the smaller number, and so must be placed ahead of $3$.\n\nThus, the final order is $[4, 2, 1, 3]$.",
"isDeleted": false
}
]
},
"gumlet_video_url": "",
"video_editorial_url": "https:\/\/youtu.be\/QAK_KGXyvt0?si=ArRmUattqydRwtZH",
"text_editorial_body": "<h1><a name=\"problem-link-1\" class=\"anchor\" href=\"#problem-link-1\"><\/a>PROBLEM LINK:<\/h1>\n<p><a href=\"https:\/\/www.codechef.com\/problems\/P3209\">Practice<\/a><br>\n<a href=\"https:\/\/www.codechef.com\/START209A\/problems\/P3209\">Contest: Division 1<\/a><br>\n<a href=\"https:\/\/www.codechef.com\/START209B\/problems\/P3209\">Contest: Division 2<\/a><br>\n<a href=\"https:\/\/www.codechef.com\/START209C\/problems\/P3209\">Contest: Division 3<\/a><br>\n<a href=\"https:\/\/www.codechef.com\/START209D\/problems\/P3209\">Contest: Division 4<\/a><\/p>\n<p><em><strong>Author:<\/strong><\/em> <a href=\"https:\/\/www.codechef.com\/users\/pols_agyi_pols\">pols_agyi_pols<\/a><br>\n<em><strong>Tester:<\/strong><\/em> <a href=\"https:\/\/www.codechef.com\/users\/kingmessi\">kingmessi<\/a><br>\n<em><strong>Editorialist:<\/strong><\/em> <a href=\"https:\/\/www.codechef.com\/users\/iceknight1093\">iceknight1093<\/a><\/p>\n<h1><a name=\"difficulty-2\" class=\"anchor\" href=\"#difficulty-2\"><\/a>DIFFICULTY:<\/h1>\n<p>Cakewalk<\/p>\n<h1><a name=\"prerequisites-3\" class=\"anchor\" href=\"#prerequisites-3\"><\/a>PREREQUISITES:<\/h1>\n<p>None<\/p>\n<h1><a name=\"problem-4\" class=\"anchor\" href=\"#problem-4\"><\/a>PROBLEM:<\/h1>\n<p>There are <span class=\"math\">N<\/span> players, numbered <span class=\"math\">1<\/span> to <span class=\"math\">N<\/span>.<br>\nThe score of player <span class=\"math\">i<\/span> is <span class=\"math\">\\gcd(i, N)<\/span>.<\/p>\n<p>Find an ordering of the players such that:<\/p>\n<ul>\n<li>A player with higher score always appears before one with lower score.<\/li>\n<li>Between players with the same score, the one with a smaller label comes first.<\/li>\n<\/ul>\n<h1><a name=\"explanation-5\" class=\"anchor\" href=\"#explanation-5\"><\/a>EXPLANATION:<\/h1>\n<p>This is pretty much just a straightforward implementation task.<br>\nHere\u2019s one way of doing it.<\/p>\n<p>First, note that <span class=\"math\">\\gcd(i, N)<\/span> will always be an integer between <span class=\"math\">1<\/span> and <span class=\"math\">N<\/span>.<br>\nSo, let\u2019s create <span class=\"math\">N<\/span> lists <span class=\"math\">L_1, L_2, \\ldots, L_N<\/span>.<br>\nThe list <span class=\"math\">L_g<\/span> will hold a list of all the people <span class=\"math\">i<\/span> such that <span class=\"math\">\\gcd(i, N) = g<\/span>, sorted in ascending order.<\/p>\n<p>The lists can be populated as follows:<\/p>\n<ul>\n<li>Start with all the lists being empty.<\/li>\n<li>Then, for each <span class=\"math\">i = 1, 2, \\ldots, N<\/span> in order:\n<ul>\n<li>Compute <span class=\"math\">g = \\gcd(i, N)<\/span>.<br>\nThis can be done either using a loop, or with your language\u2019s inbuilt <code>gcd<\/code> function.<\/li>\n<li>Then, append <span class=\"math\">i<\/span> to the back of <span class=\"math\">L_g<\/span>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Once this is done, we are ready to compute the necessary order.<br>\nLet <span class=\"math\">A<\/span> be an empty array (that will eventually hold the answer).<br>\nWe do the following:<\/p>\n<ul>\n<li>Iterate over <span class=\"math\">g<\/span> from <span class=\"math\">N<\/span> down to <span class=\"math\">1<\/span>.<\/li>\n<li>When processing <span class=\"math\">g<\/span>, simply append all the elements of <span class=\"math\">L_g<\/span> to <span class=\"math\">A<\/span> in order.<\/li>\n<\/ul>\n<p>In the end, the array <span class=\"math\">A<\/span> will hold the order we want, so print it.<\/p>\n<h1><a name=\"time-complexity-6\" class=\"anchor\" href=\"#time-complexity-6\"><\/a>TIME COMPLEXITY:<\/h1>\n<p><span class=\"math\">\\mathcal{O}(N\\log N)<\/span> per testcase.<\/p>\n<h1><a name=\"code-7\" class=\"anchor\" href=\"#code-7\"><\/a>CODE:<\/h1>\n<details>\n<summary>\nEditorialist's code (PyPy3)<\/summary>\n<pre><code class=\"lang-python\">for _ in range(int(input())):\n n = int(input())\n ids = [ [] for i in range(n+1) ]\n \n import math\n for i in range(1, n+1):\n ids[math.gcd(i, n)].append(i)\n ans = []\n for i in reversed(range(1, n+1)):\n ans.extend(ids[i])\n print(*ans)\n<\/code><\/pre>\n<\/details>",
"text_editorial_is_markdown": 0,
"text_editorial_topic_id": 124412,
"languages_supported": "CPP20, PYTH 3, C, JAVA, PYP3, CS2, NODEJS, GO, TS, PHP, kotlin, rust, R",
"max_timelimit": "1",
"source_sizelimit": "50000",
"problem_author": "archit_adm",
"problem_display_authors": ["archit_adm"],
"problem_display_authors_html_handle": "<div class=\"multiple-usernames-container\"><a href='\/users\/archit_adm'>archit_adm<\/a><\/div>",
"problem_tester": null,
"problem_testers_usernames": ["kingmessi"],
"problem_tester_html_handle": "<div class=\"multiple-usernames-container\"><a href='\/users\/kingmessi'><span \n class='rating' \n style='display: inline-block; \n font-size: 10px; \n background: #D0011B;\n padding: 0 3px; \n line-height: 1.3; \n color: white;\n margin-right: 2px;'>7&#9733;<\/span><span class='m-username--link'>kingmessi<\/span><\/a><\/div>",
"problem_editorialist": "iceknight1093",
"date_added": "21-10-2025",
"ready_for_debug": false,
"problem_stats": {
"accuracy": 76.489999999999995,
"successful_submissions": "13635",
"total_submissions": "19367"
},
"user_tags": ["archit_adm", "cakewalk", "start209"],
"computed_tags": [],
"difficulty_rating": "1039",
"best_tag": "",
"editorial_url": "",
"time": {
"view_start_date": 1761143406,
"submit_start_date": 1761143406,
"visible_start_date": 1761150606,
"end_date": 1761150606,
"current": 1761365589,
"practice_submission_allowed": false
},
"user": { "username": null, "access": "default", "isPremiumUser": false },
"bookmark_status": false,
"contest_problem_status": "unattempted",
"problem_status": "unattempted",
"is_direct_submittable": false,
"problemDiscussURL": "https:\/\/discuss.codechef.com\/search?q=P3209",
"is_a_practice_or_college_contest": false,
"votes_data": {
"SolutionVoteData": { "upvote_count": 0, "user_vote": 0 },
"HintsVoteData": { "upvote_count": 0, "user_vote": 0 },
"ProblemStatementVoteData": { "upvote_count": 27, "user_vote": 0 },
"DoubtSupportVoteData": { "upvote_count": 0, "user_vote": 0 }
},
"is_proctored": false,
"is_user_verified_for_proctoring": false,
"visitedContests": [],
"isSupportedByJudge": true
}