From d82ad1b3bf10ee67fbe0ab14526e859ed97e9000 Mon Sep 17 00:00:00 2001 From: Kato Hiroki Date: Wed, 24 Sep 2025 09:23:52 +0000 Subject: [PATCH 1/2] =?UTF-8?q?=E2=9C=A8=20Add=20tasks=20(#2617)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/utils/contest.ts | 8 +++++ src/test/lib/utils/test_cases/contest_type.ts | 32 +++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/src/lib/utils/contest.ts b/src/lib/utils/contest.ts index 95d9d7352..e69e4b4bc 100644 --- a/src/lib/utils/contest.ts +++ b/src/lib/utils/contest.ts @@ -95,12 +95,20 @@ export const classifyContest = (contest_id: string) => { // HACK: As of September 2025, the following contests are applicable. // Note: The classification logic may need to be revised when new contests are added. const ABC_LIKE: ContestPrefix = { + 'tenka1-2017-beginner': 'Tenka1 Programmer Beginner Contest', abl: 'ACL Beginner Contest', caddi2018b: 'CADDi 2018 for Beginners', + 'soundhound2018-summer-qual': 'SoundHound Inc. Programming Contest 2018 -Masters Tournament-', + 'tenka1-2018-beginner': 'Tenka1 Programmer Beginner Contest', + aising2019: 'エイシング プログラミング コンテスト 2019', + sumitrust2019: '三井住友信託銀行プログラミングコンテスト2019', + 'tenka1-2019-beginner': 'Tenka1 Programmer Beginner Contest 2019', aising2020: 'エイシング プログラミング コンテスト 2020', hhkb2020: 'HHKB プログラミングコンテスト 2020', + 'm-solutions2020': 'M-SOLUTIONS プロコンオープン 2020', panasonic2020: 'パナソニックプログラミングコンテスト 2020', jsc2021: '第二回日本最強プログラマー学生選手権', + zone2021: 'ZONeエナジー プログラミングコンテスト “HELLO SPACE”', 'jsc2025advance-final': '日本最強プログラマー学生選手権~Advance~', } as const; const abcLikePrefixes = new Set(getContestPrefixes(ABC_LIKE)); diff --git a/src/test/lib/utils/test_cases/contest_type.ts b/src/test/lib/utils/test_cases/contest_type.ts index c5f72e8a2..fc0af7397 100644 --- a/src/test/lib/utils/test_cases/contest_type.ts +++ b/src/test/lib/utils/test_cases/contest_type.ts @@ -187,6 +187,10 @@ export const agc = agcContestIds.map((contestId) => ); export const abcLike = [ + createTestCaseForContestType('Tenka1 Programmer Beginner Contest')({ + contestId: 'tenka1-2017-beginner', + expected: ContestType.ABC_LIKE, + }), createTestCaseForContestType('ACL Beginner Contest')({ contestId: 'abl', expected: ContestType.ABC_LIKE, @@ -195,6 +199,26 @@ export const abcLike = [ contestId: 'caddi2018b', expected: ContestType.ABC_LIKE, }), + createTestCaseForContestType('SoundHound Inc. Programming Contest 2018 -Masters Tournament-')({ + contestId: 'soundhound2018-summer-qual', + expected: ContestType.ABC_LIKE, + }), + createTestCaseForContestType('Tenka1 Programmer Beginner Contest')({ + contestId: 'tenka1-2018-beginner', + expected: ContestType.ABC_LIKE, + }), + createTestCaseForContestType('エイシング プログラミング コンテスト 2019')({ + contestId: 'aising2019', + expected: ContestType.ABC_LIKE, + }), + createTestCaseForContestType('三井住友信託銀行プログラミングコンテスト2019')({ + contestId: 'sumitrust2019', + expected: ContestType.ABC_LIKE, + }), + createTestCaseForContestType('Tenka1 Programmer Beginner Contest 2019')({ + contestId: 'tenka1-2019-beginner', + expected: ContestType.ABC_LIKE, + }), createTestCaseForContestType('AISing 2020')({ contestId: 'aising2020', expected: ContestType.ABC_LIKE, @@ -203,6 +227,10 @@ export const abcLike = [ contestId: 'hhkb2020', expected: ContestType.ABC_LIKE, }), + createTestCaseForContestType('M-SOLUTIONS プロコンオープン 2020')({ + contestId: 'm-solutions2020', + expected: ContestType.ABC_LIKE, + }), createTestCaseForContestType('Panasonic 2020')({ contestId: 'panasonic2020', expected: ContestType.ABC_LIKE, @@ -211,6 +239,10 @@ export const abcLike = [ contestId: 'jsc2021', expected: ContestType.ABC_LIKE, }), + createTestCaseForContestType('ZONeエナジー プログラミングコンテスト “HELLO SPACE”')({ + contestId: 'zone2021', + expected: ContestType.ABC_LIKE, + }), createTestCaseForContestType('日本最強プログラマー学生選手権~Advance~')({ contestId: 'jsc2025advance-final', expected: ContestType.ABC_LIKE, From 700d2a344fcdeb34b510cb4194b11d088b7ecee6 Mon Sep 17 00:00:00 2001 From: Kato Hiroki Date: Wed, 24 Sep 2025 09:34:51 +0000 Subject: [PATCH 2/2] :chore: Unify Tenka1 Beginner display names( #2617) --- src/lib/utils/contest.ts | 4 ++-- src/test/lib/utils/test_cases/contest_type.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lib/utils/contest.ts b/src/lib/utils/contest.ts index e69e4b4bc..6aa91005e 100644 --- a/src/lib/utils/contest.ts +++ b/src/lib/utils/contest.ts @@ -95,11 +95,11 @@ export const classifyContest = (contest_id: string) => { // HACK: As of September 2025, the following contests are applicable. // Note: The classification logic may need to be revised when new contests are added. const ABC_LIKE: ContestPrefix = { - 'tenka1-2017-beginner': 'Tenka1 Programmer Beginner Contest', + 'tenka1-2017-beginner': 'Tenka1 Programmer Beginner Contest 2017', abl: 'ACL Beginner Contest', caddi2018b: 'CADDi 2018 for Beginners', 'soundhound2018-summer-qual': 'SoundHound Inc. Programming Contest 2018 -Masters Tournament-', - 'tenka1-2018-beginner': 'Tenka1 Programmer Beginner Contest', + 'tenka1-2018-beginner': 'Tenka1 Programmer Beginner Contest 2018', aising2019: 'エイシング プログラミング コンテスト 2019', sumitrust2019: '三井住友信託銀行プログラミングコンテスト2019', 'tenka1-2019-beginner': 'Tenka1 Programmer Beginner Contest 2019', diff --git a/src/test/lib/utils/test_cases/contest_type.ts b/src/test/lib/utils/test_cases/contest_type.ts index fc0af7397..4e64f5a92 100644 --- a/src/test/lib/utils/test_cases/contest_type.ts +++ b/src/test/lib/utils/test_cases/contest_type.ts @@ -187,7 +187,7 @@ export const agc = agcContestIds.map((contestId) => ); export const abcLike = [ - createTestCaseForContestType('Tenka1 Programmer Beginner Contest')({ + createTestCaseForContestType('Tenka1 Programmer Beginner Contest 2017')({ contestId: 'tenka1-2017-beginner', expected: ContestType.ABC_LIKE, }), @@ -203,7 +203,7 @@ export const abcLike = [ contestId: 'soundhound2018-summer-qual', expected: ContestType.ABC_LIKE, }), - createTestCaseForContestType('Tenka1 Programmer Beginner Contest')({ + createTestCaseForContestType('Tenka1 Programmer Beginner Contest 2018')({ contestId: 'tenka1-2018-beginner', expected: ContestType.ABC_LIKE, }),