LANGUAGE_IDS = { "atcoder": { "cpp": "6017", "python": "6082", "java": "6056", "rust": "6088", "c": "6014", "go": "6051", "haskell": "6052", "csharp": "6015", "kotlin": "6062", "ruby": "6087", "javascript": "6059", "typescript": "6100", "scala": "6090", "ocaml": "6073", "dart": "6033", "elixir": "6038", "erlang": "6041", "fsharp": "6042", "swift": "6095", "zig": "6111", "nim": "6072", "lua": "6067", "perl": "6076", "php": "6077", "pascal": "6075", "crystal": "6028", "d": "6030", "julia": "6114", "r": "6084", "commonlisp": "6027", "scheme": "6092", "clojure": "6022", "ada": "6002", "bash": "6008", "fortran": "6047", "gleam": "6049", "lean": "6065", "vala": "6106", "v": "6105", }, "codeforces": { "cpp": "89", "python": "70", "java": "87", "kotlin": "99", "rust": "75", "go": "32", "csharp": "96", "haskell": "12", "javascript": "55", "ruby": "67", "scala": "20", "ocaml": "19", "d": "28", "perl": "13", "php": "6", "pascal": "4", "fsharp": "97", }, "cses": { "cpp": "C++17", "python": "Python3", "java": "Java", "rust": "Rust2021", }, "usaco": { "cpp": "cpp", "python": "python", "java": "java", }, "kattis": { "cpp": "C++", "python": "Python 3", "java": "Java", "rust": "Rust", "ada": "Ada", "algol60": "Algol 60", "algol68": "Algol 68", "apl": "APL", "bash": "Bash", "bcpl": "BCPL", "bqn": "BQN", "c": "C", "cobol": "COBOL", "commonlisp": "Common Lisp", "crystal": "Crystal", "csharp": "C#", "d": "D", "dart": "Dart", "elixir": "Elixir", "erlang": "Erlang", "forth": "Forth", "fortran": "Fortran", "fortran77": "Fortran 77", "fsharp": "F#", "gerbil": "Gerbil", "go": "Go", "haskell": "Haskell", "icon": "Icon", "javascript": "JavaScript (Node.js)", "julia": "Julia", "kotlin": "Kotlin", "lua": "Lua", "modula2": "Modula-2", "nim": "Nim", "objectivec": "Objective-C", "ocaml": "OCaml", "octave": "Octave", "odin": "Odin", "pascal": "Pascal", "perl": "Perl", "php": "PHP", "pli": "PL/I", "prolog": "Prolog", "racket": "Racket", "ruby": "Ruby", "scala": "Scala", "simula": "Simula 67", "smalltalk": "Smalltalk", "snobol": "SNOBOL", "swift": "Swift", "typescript": "TypeScript", "visualbasic": "Visual Basic", "zig": "Zig", }, "codechef": { "cpp": "C++", "python": "PYTH 3", "java": "JAVA", "rust": "rust", "c": "C", "go": "GO", "kotlin": "KTLN", "javascript": "NODEJS", "typescript": "TS", "csharp": "C#", "php": "PHP", "r": "R", }, } def get_language_id(platform: str, language: str) -> str | None: return LANGUAGE_IDS.get(platform, {}).get(language)