Tuyển sinh 🎓 Mình nhận đào tạo lập trình giải thuật thi đấu: thi vào lớp 10 chuyên tin · thi học sinh giỏi tin học cấp tỉnh/thành · thi vào đội tuyển quốc gia · Olympic tin học sinh viên / ICPC · phỏng vấn thuật toán. Bấm vào đây để xem thông tin khóa học → Xem khóa học
Thi thử miễn phí
🏆 Thi thử HSG Tin học tuần này trên ClueOJ
Mở công khai cho mọi người · đề do thầy Nguyễn Việt Nam Sơn biên soạn
Lịch thi, đề cũ & lời giải →

Bài 7: Petr Mitrichev (Petr) – Ông vua thời TopCoder, 4 lần vô địch TCO, 3 lần Hacker Cup

Bài 7: Petr Mitrichev (Petr) – Ông vua thời TopCoder, 4 lần vô địch TCO, 3 lần Hacker Cup

Petr Mitrichev – nick Petr – là "ông vua" đầu tiên của kỷ nguyên lập trình thi đấu trực tuyến: đứng số 1 TopCoder suốt nhiều năm, 4 lần vô địch TopCoder Open, 3 lần vô địch Facebook Hacker Cup, vô địch Google Code Jam, và hơn 40 tuổi vẫn còn thắng các vòng Codeforces Div. 1.

Petr Mitrichev - Huyền thoại lập trình thi đấu
🔗 Xem hồ sơ của Petr trên các nền tảng thi đấu:

Bài thứ bảy của chuyên mục Huyền thoại lập trình thi đấu. Trước khi có tourist, cả thế giới lập trình thi đấu đã nhìn lên một người: Petr. Và chính tourist cũng từng nhìn lên anh.

Chân dung "Petr"

Nếu tourist là biểu tượng của thế hệ Codeforces, thì Petr Mitrichev là biểu tượng của thời TopCoder – giai đoạn mà các giải đấu lập trình trực tuyến bắt đầu có tiền thưởng lớn, có khán giả và có "ngôi sao". Năm 2012, tạp chí MIT Technology Review gọi anh là người "liên tục giành vàng trong Olympic thuật toán".

Thông tinChi tiết
Họ tênPetr Mitrichev (Пётр Митричев)
NicknamePetr (TopCoder, Codeforces, AtCoder)
Ngày sinh19/3/1985, Moscow, Nga
Trường THPTTrường số 57 Moscow – một trong những trường chuyên toán nổi tiếng nhất nước Nga
Đại họcĐại học Quốc gia Moscow (MSU), khoa Cơ học – Toán học; thạc sĩ Toán
Rating Codeforces cao nhất3597 (7/2016) – Legendary Grandmaster
Công việcKỹ sư Google từ 2007 (Moscow, nay ở Zurich, Thụy Sĩ)
BlogAlgorithms Weekly – blog.mitrichev.ch, viết từ năm 2008

Cậu bé 11 tuổi được "phát máy tính" vì quá nhỏ

Petr bắt đầu lập trình khoảng năm 10 tuổi, tự học Pascal từ cuốn sách của anh trai. Năm 1997, mới 11 tuổi, anh được cô giáo Julia Lvovna Vorontsova khuyến khích đi thi Olympic Tin học Moscow và đạt hạng 6. Cũng thời gian đó, anh dự Olympic quốc gia Nga dành cho học sinh THPT và xếp khoảng thứ 60/100 – ban giám khảo thấy cậu bé quá nhỏ tuổi nên còn đặc cách cho cậu một chiếc máy tính.

Bài viết đầu tiên trên blog của Petr (31/5/2008) có tựa đề "My very first algorithm problem experience" – kể lại chính kỳ thi năm 1997 ấy.

Sau đó, Petr vô địch Olympic Tin học quốc gia Nga ba năm liền 2000, 2001, 2002 và thi IOI cho đội Nga:

NămKỳ thiThành tích
2000IOI – Bắc Kinh, Trung QuốcHuy chương Vàng, hạng 5–6, 680/700 điểm
2001IOI – Tampere, Phần LanHuy chương Bạc, hạng 65
2002IOI – Yongin, Hàn QuốcHuy chương Vàng, hạng 7

Một chi tiết thú vị: 15 tuổi, Petr đã gần như đạt điểm tối đa ở IOI 2000 – nhưng năm sau lại "chỉ" giành bạc. Ngay cả thiên tài cũng có ngày không như ý.

ICPC: hai lần á quân thế giới

Ở Đại học Quốc gia Moscow, Petr hai lần đưa đội vào top đầu chung kết thế giới ICPC:

NămĐịa điểmĐộiKết quả
2003Beverly Hills, MỹPetr Mitrichev, Eugeny Cherepanov, Maxim BabenkoHạng 2, HCV – 8 bài, chỉ kém Warsaw 1 bài
2005Thượng Hải, Trung Quốc"Moscow State Improbable Team": Petr, Pavel Nalivaiko, Vladimir RychevHạng 2, HCV, vô địch châu Âu – 7 bài, sau Shanghai Jiao Tong

Petr chưa từng vô địch ICPC – đây có lẽ là "mảnh ghép" duy nhất còn thiếu trong bộ sưu tập của anh. Nhưng những gì anh làm được ở các giải cá nhân đã bù lại nhiều hơn thế.

Năm 2006: cú ăn ba chưa từng có

Năm 2006, Petr vô địch cả ba giải lớn nhất thời đó: TopCoder Open (Las Vegas, tháng 5), TopCoder Collegiate Challenge (giải 25.000 USD) và Google Code Jam (chung kết tại văn phòng Google New York ngày 27/10/2006, giải 10.000 USD, xếp trên Ying Wang và Andrey Stankevich). Theo một bài báo năm 2006 của ĐH ITMO, anh là người đầu tiên thắng cả ba giải trong cùng một năm. Cùng năm, anh còn giành hạng 2 ở chung kết Code Jam châu Âu tại Dublin.

Bảng vàng thành tích

Giải đấuNămThành tích
Google Code Jam2005Hạng 3
Google Code Jam (New York)2006Vô địch
TopCoder Open – Algorithm2006, 2013, 2015, 20184 lần vô địch
TopCoder Open – Algorithm2008, 2014, 2016, 20214 lần á quân
TopCoder Collegiate Challenge2006, 20072 lần vô địch (mỗi lần 25.000 USD)
Facebook Hacker Cup2011 (lần đầu tổ chức)Vô địch – Khúc Anh Tuấn của Việt Nam về nhì
Facebook Hacker Cup2013Vô địch – người đầu tiên vô địch 2 lần
Facebook Hacker Cup (Seattle)2017Vô địch lần thứ ba
Russian Code Cup2011, 2013, 20153 lần vô địch (2015 xếp trên tourist)
Yandex.Algorithm2011Vô địch
AtCoder World Tour Finals2019Hạng 3
TopCoder SRMđến 6/2015Hơn 100 lần thắng vòng SRM
Wincent DragonByte (Bratislava)2026Hạng 2, 41 tuổi

Theo thống kê của cphof.org, tổng tiền thưởng thi đấu của Petr vào khoảng 224.000 USD.

Hacker Cup 2011: Petr, Khúc Anh Tuấn và ACRush

Đây là chi tiết rất đáng nhớ với độc giả Việt Nam. Ở chung kết Facebook Hacker Cup đầu tiên (tháng 3/2011, Palo Alto), bục trao giải gồm: Petr Mitrichev vô địch, Khúc Anh Tuấn (Việt Nam) hạng 2, ACRush Lâu Thiên Thành (Trung Quốc) hạng 3. Bạn có thể đọc thêm về Khúc Anh Tuấn trong bài trước của chuyên mục.

Khi lên nhận cúp, Petr vẫn đeo thẻ nhân viên Google trên quần jeans. Một số người cho rằng đó là một cú "cà khịa": nhân viên Google đến tận nhà Facebook lấy cúp. Petr giải thích rằng anh chỉ quên tháo thẻ từ hôm trước, và nói với MIT Technology Review: "I was not trying to make any point." (Tôi không cố ý thể hiện điều gì cả.)

Khán giả đến sớm 20 phút chỉ để xem màn hình của Petr

Theo MIT Technology Review, ở các kỳ chung kết TopCoder Open, khán giả đến sớm 20 phút để giành chỗ đứng sau màn hình của Petr. CTO của TopCoder kể rằng mỗi khi Petr mắc lỗi, đám đông xì xào – và khi anh sửa xong, họ lại xì xào lần nữa. Theo tạp chí này, Petr đứng số 1 bảng xếp hạng TopCoder từ năm 2005; đến năm 2014 anh mới xếp sau tourist.

Người phá mọi mốc rating ở Codeforces

Khi Codeforces mới ra đời năm 2010, Petr thắng liên tiếp các vòng Beta Round 3, 5, 7, 8 và 10. Anh trở thành người đầu tiên vượt các mốc rating 1700, 1800, 1900, 2000 và 2100. Đỉnh cao rating của anh là 3597 vào tháng 7/2016.

Phong cách thi đấu

  • Code gần như ngay lập tức: Petr nổi tiếng bắt đầu gõ code rất nhanh sau khi đọc đề.
  • Đổi ngôn ngữ để bớt sai: anh chuyển từ Pascal sang C# rồi Java, vì ngôn ngữ chặt chẽ hơn giúp bắt các lỗi bất cẩn.
  • Quay screencast: anh ghi lại màn hình khi thi đấu để người khác học cách anh suy nghĩ.
  • Đa năng: anh thi đấu được mọi thể thức – thi nhanh, thi dài, thi đồng đội (IPSC, Challenge24).

Algorithms Weekly: "tờ báo tuần" của cả cộng đồng

Petr viết blog từ năm 2008, ban đầu ở petr-mitrichev.blogspot.com, nay là blog.mitrichev.ch. Từ khoảng tháng 9/2013, anh duy trì loạt bài hằng tuần "This week in competitive programming" (sau đổi thành dạng tựa "A ___ week"). Mỗi bài tóm tắt các kỳ thi trong tuần trên TopCoder, Codeforces, Open Cup, AtCoder…, nêu top 5 và phân tích bài toán hay nhất.

Giai đoạn 2014–2019, anh viết khoảng 50–60 bài mỗi năm. Trên Codeforces, được nằm trong top 5 của bài tổng kết tuần trên blog Petr được coi như một sự công nhận. Có người còn đặt mục tiêu lọt top 5 để "được lên blog Petr".

Câu chuyện "Chuck Norris" của lập trình thi đấu

Năm 2014, tạp chí Хакер (Nga) mở đầu bài phỏng vấn Petr bằng những "truyền thuyết" kiểu Chuck Norris mà cộng đồng lưu truyền, ví dụ như Petr đã viết lại thuật toán tìm kiếm của Google 16 lần trong 15 phút. Chuyện đùa thôi, nhưng nó cho thấy vị thế của anh trong mắt cộng đồng.

Người truyền cảm hứng cho tourist

Trong một phỏng vấn của ĐH ITMO (đăng lại trên Codeforces), Gennady Korotkevich kể rằng khi còn nhỏ, anh đã lấy Petr làm hình mẫu – một người giữ vững phong độ đỉnh cao rất lâu và vẫn thi tốt khi đã lớn tuổi hơn hầu hết đối thủ. Hai "ông vua" sau đó nhiều lần đối đầu: tourist vô địch Hacker Cup 2015 khi Petr hạng 4, còn ở Russian Code Cup 2015 thì Petr thắng tourist.

Năm 2020, khi rng_58 viết lời chia tay sự nghiệp thi đấu, anh cũng nhắc đến việc từng say mê theo dõi Petr, tomek và tourist trên TopCoder.

Lời khuyên của Petr

Trong buổi trò chuyện với cộng đồng TopCoder năm 2008 và phỏng vấn năm 2014, Petr chia sẻ nhiều lời khuyên vẫn còn nguyên giá trị:

  • Luyện tập quan trọng hơn tài năng. Hãy tự giải bài, chỉ đọc lời giải khi thật sự bế tắc.
  • Quy hoạch động là kỹ năng then chốt.
  • Độ chính xác: khi rating vượt khoảng 2300, việc code đúng ngay trở nên cực kỳ quan trọng.
  • Trại huấn luyện: anh cho rằng mình tiến bộ nhiều nhất ở các trại tập huấn đội tuyển IOI của Nga.
  • Đừng để nó chiếm hết cuộc sống: lập trình thi đấu là sở thích tuyệt vời, và phần đáng giá nhất là những người bạn bạn gặp được.
"You have a feeling of satisfaction in a contest when you solve a problem." – Petr Mitrichev (MIT Technology Review, 2012)
(Bạn có một cảm giác thỏa mãn khi giải được một bài trong kỳ thi.)

Petr bây giờ: 41 tuổi, vẫn thắng Div. 1

  • Công việc: Petr vẫn làm ở Google, nay tại Zurich (Thụy Sĩ). Trước đây anh làm về chất lượng tìm kiếm và tham gia chuẩn bị đề Google Code Jam cho đến khi giải dừng tổ chức năm 2023. Tháng 9/2025, Google DeepMind đã nêu tên anh trong số các chuyên gia lập trình thi đấu được cảm ơn trong bài viết về việc Gemini đạt thành tích tương đương huy chương vàng ICPC World Finals.
  • Vẫn thi đấu: ngày 17/1/2026, Petr vô địch Codeforces Round 1073 (Div. 1), xếp trên jiangly và tourist, rating tăng 260 điểm. Tháng 9/2026, anh giành hạng 2 chung kết Wincent DragonByte ở Bratislava.
  • Ra đề và bình luận: anh là tác giả đề cho đội Thụy Sĩ tại Olympic Tin học Nữ châu Âu (EGOI) từ 2021 đến 2026, và là bình luận viên các kỳ AtCoder World Tour Finals 2025–2026.
  • Về AI: tháng 7/2026, Petr viết trên blog rằng AWTF 2026 cho thấy các mô hình ngôn ngữ lớn đã giải rất tốt các bài kiểu AtCoder. Anh kỳ vọng AI sẽ giúp ích cho việc ra đề và luyện tập, nhưng cũng lo ngại về gian lận.

Bài học cho người học thuật toán

  1. Bền bỉ là tài năng lớn nhất: Petr thi đấu từ năm 11 tuổi và vẫn thắng Div. 1 ở tuổi 40.
  2. Tự giải trước, đọc lời giải sau: đó là cách anh luyện tập từ đầu.
  3. Chọn công cụ giúp bạn ít sai: Petr đổi cả ngôn ngữ lập trình chỉ để giảm lỗi bất cẩn.
  4. Viết và chia sẻ: blog Algorithms Weekly cho thấy việc tổng kết và giải thích lại giúp cả người viết lẫn người đọc tiến bộ.
  5. Giữ cân bằng: lập trình thi đấu nên là niềm vui, không phải toàn bộ cuộc sống.

Bạn biết đến Petr qua TopCoder, Codeforces hay blog Algorithms Weekly? Hãy chia sẻ trong phần bình luận nhé!

Nguồn tham khảo

Tự học thuật toán: khó ở đâu?
Đọc xong một bài giải là bước đầu. Phần lớn học sinh tự học sẽ gặp những trở ngại sau:
  • Không biết học gì trước, học gì sau, học lan man nên kiến thức bị hổng.
  • Bí bài không ai gỡ, ngồi cả buổi vẫn không ra rồi bỏ cuộc.
  • Code chạy được nhưng không đủ điểm, không biết sai ở đâu, chậm ở đâu.
  • Không có đề thi thử và người chấm, nên không biết mình đang ở mức nào.
  • Dễ nản giữa chừng khi không có ai theo sát.
Học cùng thầy Nam Sơn, các trở ngại đó được gỡ bỏ:
  • Lộ trình 111 buổi video sắp sẵn từ dòng code đầu tiên đến đề HSG thật của các tỉnh.
  • Thầy trực tiếp gỡ bí, chữa bài cho từng em qua nhóm Zalo riêng.
  • Hệ thống chấm bài tự động 24/7 và thi thử HSG hằng tuần để biết chính xác mình đang ở đâu.
  • Đóng học phí một lần, thầy kèm lâu dài: từ thi chuyên Tin đến HSG quốc gia và cả khi lên đại học.

Nhận xét