Google Codejam 和 TCO 无了

近日听闻噩耗,Google CodeJam 要停止举办了:

After nearly 20 years of Code Jam, it's time to say goodbye. While Code Jam will not continue as planned, we invite you to participate in our Competitions' Farewell Round on Saturday, April 15 at 14:00 UTC.

去年以来整个硅谷都不景气,Google 也不例外开启了 大裁员模式 ,裁了 12k 人,即使在 2008 年经济危机的时候,Codejam 也坚持办了下去,但是现已加入 Killed by Google 荣誉套餐,真是可惜了……只能感慨,Google 再也不是当年的 Google 了……

我 Codejam 总共参加了 6 年,拿了 4 件衣服。第一次是 2012 年,打了个 Qualification 就没打了,所以没拿到衣服,还有一次是 2019 年 R2 晚起了一个小时,罚时直接 gg。2019 王老爷子也在打,可惜某一题调了半天不过,最后发现是多输出了还是少输出了一个 #……后来开会的时候遇到笑哥,说起这回事的时候她说她也没拿到衣服,所以我们真的是历史的眼泪了吗 233333……2022 年是有点刺激,评测前我排名几乎快到 2k 了,本来想着没希望了,评测结果一出来我特别震惊,我 A Large 没过,怎么排名能前进了一千多名???于是又混了一件衣服……

Codejam 的比赛形式还和其它比赛略有区别。早些年 Codejam 不要求提交代码,而是它给你输入,你自己在规定时间内跑出输出并提交就可以了,这点后来被 Facebook Meta Hacker Cup 继承了。但是之后不知道从哪年起, Codejam 也变得像传统 ICPC 竞赛一样,你提交源代码,它来跑输出。尽管这样,Codejam 还是整了些活,出了好些交互式题目,但是交互式题目自己有点难 debug……

Codejam 还没感慨完,又传来 Topcoder Open (TCO)的坏消息,TCO 也要无了:

In 2023 we will sunset the traditional in-person TCO event with a final virtual event instead.

Topcoder SRM 在我高中的时候给了我非常多的帮助。现在我还记得我刷 SRM div1 时遇到的一堆超级有趣的 dp、网络流题,而且 SRM 还有官方题解。后来学校老师要我出题,我就从 Topcoder 网站上蒯了一堆题目,然后再把它的数据爬下来。由于那一段时间很多题目输入第一行都是三个数 n m p ,被当时小朋友戏称为 nmp 问题并对此产生了恐惧哈哈哈……但是没过几年,Topcoder 似乎都没人做了,甚至最近的 SRM 845 只有不到 60 人参加。我看了一下 最近的一场 SRM board,前排找到了好些熟悉的名字(ecnerwal, ksun48, neal_wu, Petr),但是中间就青黄不接,2000-2500 水平的人没几个。但是有高水平选手参加那表示题目质量应该还是可以的。最近几年来的 writer 基本上都是 misof (他脑洞怎么就这么多啊),没错,就是筹办了很多次 IPSC 的那人。之前还有 rng_58 和 cgy4ever 做 writer,都是些大名字呀。 Topcoder 还出过一些算法教程,我学最大流算法就是从这上面学会的(尽管现在想想还是 Dinic 好)。之前在缺少资源的时候还挺有用的,但是现在资源多起来了,再加上 OI/ICPC 界技术爆炸,这些资料可能不够看了,国内选手还有 OI-wiki ,感觉已经成为历史的眼泪了。

话说回 Topcoder SRM,它没落的原因可能有好些,我也不妨随便猜测一下:

  • Topcoder 的辣鸡客户端绝对占一席之地。我当年光是把这个客户端 setup 好就费了好些力气,而且跑起来还慢。你说现在这个年代,做个网站提交有那么难吗……
  • 另外 Topcoder 怎么感觉没把 SRM 当主力,当年我去它网站上想找到如何参加 SRM 都找不到。题目描述在一个旮旯角落里,Editorial 又在另外一个地方,这 UX 做的也太差了点吧……
  • Topcoder 的赛制只有 1.5h 三个题,再加上还有大难题,对我而言只能把 Easy 和 Medium 做一做拼拼手速,Hard 就算了。相比而言 Codeforces 的 2.5h 更舒服一些,OI/ICPC 赛制的 5h 就太长了。

但是值得庆幸的是,Codeforces 还没有倒下,反而随着码农群体的壮大而愈发壮大。除此之外,还有 AtCoder 的兴起。AtCoder 题目质量也都很高,而且它的英文题面特别简洁明了,直接把故事的包装去了,不用做英文阅读理解。

上文提到的 IPSC,全称是 Internet Problem Solving Contest。这也是个独树一帜的比赛,不再是纯粹的算法比赛,千奇百怪的东西都有。在比赛开始时,你可以把所有的题目描述、输入文件下下来,你只需要上传一个输出文件就可以了。举几个小例子看看这个比赛的题目有多奇葩:

  • IPSC 2018 Problem G – Git gud:给定一个 git repo,给出它包含的文件列表的 hash 值。这个比较 tricky 的是,git 是会压缩的,所以你不能简简单单地暴力 git clone 把整个 repo 复制下来。
  • IPSC 2017 Problem H – Holy cow, Vim!:给你一门编程语言,你需要写一段该语言的代码,使得:
    • 正向运行后,会读入一个数 \(x\) 再输出 \(x\)
    • 反向运行后,会读入一个数 \(x\) 再输出 \(x^2\)
    • 把所有行按字典序排序后,会读入一个数 \(x\) 再输出 \(-x\)
  • IPSC 2016 Problem D – Dumb clicking:给你一个网页游戏,你需要的就是根据指令点点点(形如“点击黄色正方形,然后点击绿色长条”)。你每次点击,网页会生成一个 log,提交 log 即可。游戏指令有将近 500 条,所以一个一个手点下去会很无聊……

非常可惜的是,2018 年后,IPSC 因为没人组织最后停办了。后来有人秉承 IPSC 的意志,出了两版 “美团杯” 程序设计挑战赛 (2020, 2021),可惜 2022 似乎也无了……

想当年,Codejam、TCO 和 IOI 并称竞技编程界最高三大个人赛事,现在就 IOI 还活着了。不知道 OI 的下一个纪元又是谁在主宰……