Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions src/lib/utils/contest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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));
Expand Down
32 changes: 32 additions & 0 deletions src/test/lib/utils/test_cases/contest_type.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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,
Expand All @@ -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,
Expand All @@ -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,
Expand Down
Loading