diff --git a/src/lib/utils/contest.ts b/src/lib/utils/contest.ts index 95d9d7352..6aa91005e 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 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 2018', + 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..4e64f5a92 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 2017')({ + 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 2018')({ + 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,