ぴーよメモ

大学生のひとりごと

セキュリティ完全初心者がCTF入門して半月が経ちました

記事を開いてくださったみなさんようこそ。
ぴーよです(*- -)(*_ _)ペコリ


年末年始にかけて異様になぜかモチベーションが高くて勢いで前から気になっていたCTFを始めてしまいました。
初心者だった時の気持ちは脱初心者すると忘れてしまうとよく聞くので、覚えているうちにわかったこととか参考にしたものとかを時系列順でまとめておこうと思います。

CTFとは

おそらくこの記事を目にしている方の大半は知っていると思いますが一応。

CTFは"Capture The Flag"の略で、『与えられた問題からFlag(旗)をゲットすることを目的とした競技です』みたいなことがググると出てきます。


f:id:holeguma:20200108172213p:plain
旗ってなに.....???



旗っていうのはほんとに旗があるわけじゃなくて、決まった形の答えの文字列*1がいろんな方法で隠されててそれを旗と呼ぶっぽいです。
例えば"FLAG{~}"みたいな形式の文字列がどこかに隠されてるから見つけてきてね見たいな感じです。

始める前は旗の画像が隠されてるのかと思ってました。


長々と書きましたが簡単に言うとハッキングの競技です。


実際にどんな感じなのかは琴葉姉妹と学ぶハッキングシリーズの動画を見ると雰囲気がつかめます。
www.nicovideo.jp



余談ですがサバゲーとかFPSにもCapture The Flagっていう分野があるらしいですね。

やり始めたとき 12/26

とりあえずこの記事を読みました。

kinako-mochimochi.hatenablog.com

この記事はCTFにはどんなジャンルの問題があってどういう本で勉強すればいいのかがまとまっているのでとても助かりました。

後、いわゆるいきなり崖から突き落としてきて這い上がってこれる奴だけついてこい的な記事も多い中、すごく初心者に寄り添って記事が書かれているのもよかったです。




cpawCTFを埋める 12/26 ~ 12/27

いつでもCTFの問題に挑戦できる常設CTFと呼ばれているサイトがいくつかあってcpawCTFはそんなサイトのうちの一つです。

ctf.cpaw.site

cpawCTFは常設CTFの中でも特に入門者に優しく、問題文にヒントがいっぱい書いてあるためググる能力が高ければ全くCTFやったことないのに全部できるという方もいるかもしれないというくらいの難易度でした。

問題数も20問ちょっとしかないのでとりあえず色んなジャンルの問題に気軽に触れられて楽しいです。

ぼくはこのサイトをググりまくって自力で埋めてからちゃんと勉強を始めようと決意したのですが、"[Reversing]またやらかした!"という問題が一生わからずにいったん断念しました。




ハリネズミ本を買う 12/28 ~ 1/4

cpawCTFを一問放置したまま本格的な勉強を始めるためにセキュリティコンテストチャレンジブック(通称ハリネズミ本)を買ってみました。*2



競技プログラミングでいう蟻本みたいなやつで、表紙にはハリネズミが書かれています。
この本ではReversing(binary), pwn, Network, Webの4分野に絞って入門者向けに書かれています。



が、正直結構難しくてReversingとpwnの部分に一通り目を通したあたりで瀕死になってました。(まだ後半は読めてません.....)



感想としては

  • ある程度のプログラミングの知識があることは前提となっている
  • メモリとかCPUを初めて聞きました!!みたいな感じだと読むのしんどそう
  • アセンブリ言語(プログラミング言語機械語の間みたいなやつ)をすらすら読めるとなお良い←ぼくは読めないです(´・ω・`)
  • むずかしい
  • むずかしい
  • むずかしい

って感じでした。



そんなときに現れた救世主がこの記事です。
qiita.com

スライドの図がとても丁寧なのでハリネズミ本のpwnの部分を読んでもやもやしたらこの記事読むとすっきりすると思います。


上の記事を見てなんとなく攻撃の仕方とかがわかってきたらこの記事も詳しくまとまっていてすごくよかったです。(この記事はまだ理解できてない部分もたくさんあります...)

raintrees.net



そして、ハリネズミ本を読んだ後にようやくcpawCTFが埋め終わりました!



また、このあたりの時期にCTFが基本的にチーム戦であるということを知りました。*3


チーム戦なので基本的には自分の強みとなる分野を作るといいらしいことがわかり、とりあえずその時やっていたpwnという分野の問題を解いていくことにしました。

ROP Emporiumを埋める 1/4 ~ 1/8 ←いまここ!

pwn入門者用のサイトとしてROP Emporiumksnctfをおすすめされたので現在はROP Emporiumに挑戦中です。


ROP Emporiumは問題を解くサイトというよりは練習用教材を配布してくれているサイトで自分のパソコンを攻撃してFlagをゲットする練習をしてみることができるようです。


32bit環境(ハリネズミ本はこっち!)と64bit環境両方の教材が置いてあるので比較しながら練習をすることができます。


ただし、64bitをやるときはこの記事をまず読んだ方がいいです。
qiita.com

ぼくはこの注意点に見事に引っ掛かり一日を溶かしました.....


また、このタイミングで環境が厳しくなってきたのでWSLからVirtualBoxに変更しました。



おわりに

最後まで読んでいただきありがとうございました!
これからも精進していくのでTwitter等でアドバイスをいただけると泣いて喜びます。
記事の間違いの指摘はいつでもお待ちしておりますのでお気軽にどうぞ。

*1:まだ浅いので答えが文字列の問題しか解いてないですが文字列以外の場合もあるのかもしれません

*2:ついでにセキュリティコンテストのためのCTF問題集っていう本も買いました。こっちも表紙がハリネズミ

*3:つよくなるとチームにスカウトされたりするのでしょうか??夢がありますね!

はじめてのさくもん

この記事はCompetitive Programming (1) Advent Calendar 2019 18日目の記事です。
adventar.org


記事を開いてくださったみなさんこんにちは。
ぴーよです(*- -)(*_ _)ペコリ

はじめに

皆さんは作問作業をしたことがありますか?

ぼくは最近まで作問を一切したことがなく、若い頃は特に作問に対して興味があるわけでもありませんでした。
しかし、年を取ったせいか近年では作問に対する興味が年々増加してきていて、ありがたいことに先日writerとtesterの両方の初体験をさせていただく機会があったので、記録用と今後作問を始める人への参考(になるかはわかりませんが)としてこの記事を置いておきます。٩( 'ω' )و

既に作問を息を吸うようにこなしているwriterの方々は、作問初心者の独り言だと思って温かい目で読んでいただけると助かります。


writer編

きっかけ

最近発足して徐々に勢力を高めている競技プログラミング系紅茶団体Cafe Coderがコンテストのwriterを募集してたので軽い気持ちで申し込んでみたら本当にさせていただけることになりました。

f:id:holeguma:20191222163713p:plain
団体とのやりとり
めっちゃ怪しい感じで書いてますが、CafeCoderはAtCoder灰色~茶色を対象としたコンテストを開催しているゆるふわプログラミングコンテストサイトでwriterをするのにも敷居が低く、世界三大初writerおすすめコンテストサイトの一つです。*1
現在はサイトリニューアルに向けて開発中らしいので頑張ってほしいです。

実際にやったこと

問題作成

とりあえず、問題が作れないと何もはじまらないのでまずは問題を作りました。

現状、自分で問題を作るときには

  1. 解法に使うアルゴリズムを固定してその解法が得られるような問題を作ってみる
  2. 問題のシチュエーションとか設定とかを先に決めて、できた問題を自分で実際に解いてみる 解けたら難しくなるように制約を強化していく


の二パターンを使って問題を錬金しています。(他の錬金術があったら勉強したいので教えてほしいです)

両方とも一応デメリットがあって、前者は作った後に既出の問題や全人類に解かれそうな見た目をしている問題になりやすく、後者はある程度自分が問題を解けないと普通に思いついた問題が解けなくて没になります。

ぼくは今のところ後者の方法が好きですが実力が伴っていないので、大量の没シチュエーションを抱えて生きています。


思いついた問題はとりあえずHackMDにまとめるようにしています。
HackMDは編集や共有が楽な上に数式とかも簡単にかけてとても便利です。

f:id:holeguma:20191222170638p:plain
問題文の一例 (CafeCoderの没問題)
あと、実際に問題文を作ってみると如何に自分の日本語がガバガバなのかがよくわかりました。

テストケース作成

問題文ができたらテストケースを作成します。
テストケースはいちいち手で作っていてはさすがに追いつかないので、基本的には制約に合うように乱数でたくさんテストケースを作ってランダムでは落とせないようなコーナーケースを手動で入力して追加するというように行いました。


作問未経験だったぼくはテストケースを生成するコードを一から書いていたのですが、実はこれは原始人のやり方であることが後日判明しました。


というのも、テストケース作成を一からちゃんとやるのは大変なので通常はRimeと呼ばれる便利ツールを使ってテストケースを作成するらしいです。もっと早く教えてよ・・・・.

Rimeの使い方に関してはbeetさんの記事に詳しくまとまっています。
beet-aizu.hatenablog.com


また、今回はやらなかったのですが構築問題みたいな複数の答えが正解になりうるような問題だと送られてきた解答が正解かどうかをジャッジ側で判定するプログラムを書くこともあるらしいです。
ジャッジ側も現実的な時間で判定できないとジャッジが終わらないという制約があるので、ジャッジ側のプログラムを書くのも競プロっぽくて面白いですね。

解説作成

今回は特に指定がなかったのでTeXで書きました。
問題文作成の時もそうでしたが、解説を作るにあたってさらに日本語力が求められます。
解説も下書きをHackMDなどに一度下書きした方がいいのかもしれません。


日本語力だいじ!!!!!



tester編

きっかけ

ぼくの所属する学科では競プロがかなり盛ん*2で、学科内の人だけでコンテストを開くという企画が計画されていました。




駄々をこねてたらtesterをやらせてもらえることになりました。

f:id:holeguma:20191222182838p:plain

実際にやったこと

引き受けたときは正直testerってなにするの?みたいなところがあったんですが、やってみてわかりました。
ざっくり言うと、testerの仕事は参加者の気持ちで問題を解いてその問題に不備がないかどうかをチェックっしてwriterをアシストすることです。
要するに他人の問題の粗探しをして、いちゃもんをつけまくれば優勝です。(怒られそう)


今回は経験者がいなかったのでとりあえず、

  • 制約が間違ってないかをassertなどを使って調べる
  • そもそもその問題がちゃんとACできるかをチェック
  • 嘘解法がちゃんと落ちるかを調べる
  • その問題の体感難易度(AtCoder~点相当など)をwriterに報告する

の四つをメインにやりました。

f:id:holeguma:20191222184515p:plain
tester作業の様子


中でも楽しかったのは嘘解法チェックで、こういう粗探しみたいな作業はもともと好きなので思うままに嘘解法を投げまくってました。*3


結果的にコンテストを無事に開催することができ、コンテスト中は作問slackも盛り上がっていました。*4

おわりに

ここまで記事にお付き合いいただきありがとうございました。作問ストックはまだ何問かあるのでまた機会があれば何かのコンテストで出題したいと思っているのでその時にはぜひよろしくお願いします。(*`・ω・)ゞ

*1:ぴーよ調べ。あと2つはyukicoderとHackerRankです。

*2:学科全体で100人ぐらいいますがそのうちAtCoder黄色が6人もいます。

*3:そのせいでBarrier Protectionのテストケースがわりと厳しめになりました。ごめんなさい。

*4:ちなみに、ぼくは仮眠をとって起きたらコンテストが終わっていたので全部後で確認して知りました・・・

自宅の冷凍庫をハーゲンダッツで埋め尽くした話

記事を開いてくださったみなさんありがとうございます。
ぴーよです(*- -)(*_ _)ペコリ

はじめに

みなさんはハーゲンダッツを知っていますか?
長年にわたって絶大な人気を誇るアイスクリームで多分どこのコンビニでも置いてあるので知らない人はいないでしょう。*1


ハーゲンダッツ、おいしいですよね。
コンビニアイスの中で他の追随を許さない美味しさがあります。


f:id:holeguma:20191020032344j:plain
おいしさの具現化、ハーゲンダッツ(バニラ味)


でも、そんなハーゲンダッツにも一つだけ問題点があります。


高い!!!!!!



いや、おいしいんだけど高いんですよね.....
ほかのアイス2, 3個買えちゃうし.....(´・ω・`)
ましてやぼくみたいな学生が気軽にポンポン買えるもんじゃ到底ございません。
ポンポン買えるのは石油王の息子ぐらいです。(だいぶ盛りました)





ゴゴゴゴゴゴゴゴゴ.......







f:id:holeguma:20191020042906j:plain





ゴゴゴゴゴゴゴゴゴ.......





f:id:holeguma:20191020042909j:plain



対戦ありがとうございました

ということでこの度自宅の冷凍庫をハーゲンダッツで埋めることに成功しました
(・ω・)ゞ


なんで買ったの?

欲しかったから!!!!!

一言でまとめるとこれなんですけど折角なのでもう少し細かく説明させて下さい。


アイスで冷凍庫を埋めてみたいっていう野望は中学生くらいの頃からありました。
よくアニメとかで冷凍庫に普通ならありえない量のアイス詰まってるシーンってあるじゃないですか。
ああいうやつの影響をもろに受けました。
あれ、シンプルにうらやましくないですか?



f:id:holeguma:20191020045951j:plain
うらやましい...



今回購入に踏み切った直接のきっかけは夏休みに友人(ここでは個人の特定をさけるため仮にその友人を"JPY"とします)と一緒にS社でインターンをさせてもらったことでした。

S社でのインターンは大変充実していておまけに給料までもらえるという神プログラムで、ぼくとJPYはS社で6週間の間インターンに参加させていただき無限*2のスキルと資産を手に入れました。


インターン期間中に


ぴーよ「JPYはインターンでお給料もらったら何に使う?」

JPY「パソコンとかかなあ。銀行口座に入れっぱなしにしといていつの間にか消えてるパターンは避けたいね。」

ぴーよ「確かに。せっかくお金もらえるんだったら普段買えないもの買ったり普段できないことしたりしたいよね。」


みたいな会話*3を幾度と無くしたような気がしたので、夢を実現させることにしました( *¯ ꒳¯*)


あとは消費税増税も完全に見越していました。断じてたまたまではありません。断じてたまたまではありません。(大事なことなの(ry)


ちなみに、これは余談ですが今回感謝の気持ちを込めて自分の冷凍庫だけでは飽き足らず、S社の冷凍庫をもインターンのメンバーとお金を出し合って埋めてしまいました。
冷凍庫の余白が泣いていたからです。



買った時の話

とりあえずお金をいっぱいおろして近くのコンビニへ向かい、買い物カゴを手にして何も考えずにカゴにハーゲンダッツを入れまくりました。


カゴにハーゲンダッツを詰め込んでいるとき、何も悪いことをしているわけじゃないのに謎の罪悪感が芽生えてきました。
それと同時に、この現場を誰かに見られたら刺されるんじゃないかみたいな恐怖心も芽生えてきてメンタルがだいぶ削られてしまいました(✖ㅂ✖ ;)*4


そしてレジへ直行!


店員さん「スプーンはお付けしますか?(マニュアル通り)(コンビニ店員の鑑)」

ぴーよ「お願いします~(口癖)(あほ)(脳みそ非搭載)」

店員さん「..........(何本つければいいんだろう)」

ぴーよ「..........(どうしようどうしようどうしよう)」

それから沈黙のまま一年が過ぎた.....


みたいなことになったのでまとめ買いするときは気を付けましょう。あの時の店員さん本当にごめんなさい。


家に帰って個数を数えてみたら60個くらい買ってました。たまたま冷凍庫にいい感じに収まってよかったです。冷凍庫からあふれてたらどうしてたんだろう。



そして値段は...


なんと一万円を切ってました←!?!?!?


実は、まとめ買いをするときにはじめは一個ずつカゴにアイスを入れてたんですけど途中から入れるのがしんどくなって6個入りのやつをたくさん買いました。

f:id:holeguma:20191020171853j:plain
6個入りのやつ

この6個入りのやつ、6個で900円ぐらいだったんですよね!安い!!


ただ安い分、一カップの量が普通のサイズと比べると小さめで通常サイズが110mL, 6個入りのほうが75mLになってます。
でも正直一回あたりに食べる量なら75mLでも十分すぎるし一回に食べる量とかよりも何回食べれるかのほうが大事だと思います。*5


同様の理由でぼくはポッキーも普通のやつより極細のやつのほうが好きです。
本数が多いから。

実際に買ってみて

埋め尽くしたの自体は1か月くらい前の話なのでここからは今の感想を書いていきます( 'ω' 三 'ω' )


まず、買ったことに関しては全く後悔していません!
買ったときは割と勢いに任せて買った部分があったので飽きちゃうんじゃないかみたいな心配をしていたのですがそんなものは杞憂でした。
いい買い物したなって感じです。
お風呂上がりとか帰宅直後とかにいつでもハーゲンダッツ食べられるのは正直最高の一言です。


あと、心が広くなります。
嫌なことがあっても(´-`).。oO(でも家に帰るとハーゲンダッツがあるじゃん)と思えば大抵のことが許せるようになります。
ゲームで煽られたり、たまたま入った定食屋さんが不味かったりしても許せます。
家に帰ってきたら知らない人が自分のベッドで寝ててもギリギリ許せないレベルです。


また、機会があればもう一度埋め尽くしてもいいなあっていうのが正直な感想です。

おすすめの味

そもそももともとこの記事は「ハーゲンダッツで冷凍庫を埋めつくして分かった本当に美味しいハーゲンダッツの味 TOP3」みたいな記事にしようと思ってたんですけど、そんなん人それぞれじゃんということでここからはあくまでぼく個人の独断と偏見によるおすすめを書いていきます。
責任は一切負いません。


① クッキー&グリーンティー
f:id:holeguma:20191020183140j:plain


クッキー&クリーム→おいしい
抹茶→おいしい


約束された勝利です。
めっちゃおいしい。
ただ単体で売ってるのをあまり見かけないのが残念です(´;ω;`)



②クリスピーサンド『3種ベリーのレアチーズ ~ベリーとビーツのウエハースと~』
f:id:holeguma:20191020183814j:plain

もう名前が豪華すぎる。
コース料理の名前みたいになってませんか?w


普段はクリスピーサンドじゃなくてカップの方ばかり食べてたんですけどこれからはクリスピーサンドも買っていこうと思いました。
ハーゲンダッツのイチゴ系のアイスの果肉の部分めっちゃ好きです。



③ クリスプチップチョコレート
f:id:holeguma:20191020184742j:plain

味もおいしいんですけど、中にパリパリのチョコが入っててその触感がよかったのでおすすめです。




あと、これもおいしそうだから気になって買ったんですけど友達が食べちゃったから本当においしいのかを確かめることはできませんでした。

f:id:holeguma:20191020185048j:plain

でもいいんです。家に帰るとハーゲンダッツがあるから。


最後に

ここまでお付き合いいただいたみなさんありがとうございました。
このブログの方向性が自分でもよくわからなくなってきたので教えてくれる方を募集してます。←自分で考えろ

ところで

ところで、非負整数Xを10進法で表したときの各桁の数字の和を f(X) とします。

整数 N が与えられるので、以下の条件を満たす非負整数 X の最小値を求めてください。

  • f(X) = f(N)
  • X ≠ N
  • 1 ≤ N ≤ 10^15

atcoder.jp

*1:いたら是非ご連絡ください。気分次第で奢ったり奢らなかったりします。

*2:有限です

*3:会話はイメージです。実際に行われた会話とは異なる場合があります。

*4:見られたけど別に刺されることはありませんでした。

*5:※個人の感想です

Codeforcesのすすめ for AtCoderユーザー

記事を開いてくださったみなさんはじめまして。

ぴーよです(*- -)(*_ _)ペコリ

 

f:id:holeguma:20191017015714j:plain
ブログを書いてみたら字が多くなりすぎて目に悪そうだったので
目によさそうな自然の画像を入れておきます

最近周りで競プロをやってる人が増えてきていますが、日本では AtCoderが主流なのもあり、AtCoder以外やったことがないという方が結構多いように感じます。

そこで、今回は海外の競技プログラミングのサイトCodeforcesを布教したいなと思いこの記事を書くことにしましたd('∀'*)

この記事では

  • 既にAtCoderで競プロをやったことがあって、ほかのサイトのコンテストにも挑戦してみたい
  • Codeforcesの名前は聞いたことあるけど結局なにもん?

と思っている方を対象に書いていきます!

ブログ初投稿なので至らないところがあるかもしれませんが多めに見ていただけると嬉しいです。

Codeforcesとは?

Codeforces(以下こどふぉ)はロシアの競技プログラミングのコンテストサイトです。

こどふぉは現時点(2019年10月)で世界で最も規模の大きいコンテストサイトで、およそ60000人ものユーザーがこのサイトに登録しています。AtCoderが35000人なので倍ぐらいですね!

こどふぉでは定期的にコンテストが開かれていてその結果に応じてレートが付きます。これはAtCoderと全く同じです( *˙ω˙*)و


ここからはAtCoderとこどふぉの違いについてみていきましょう!

CodeforcesAtCoderの違い

レートのシステム

f:id:holeguma:20191016222143p:plain
レートと色と称号の対応

まずこの画像がこどふぉのレートと色とTitleの対応表になっています。

TitleはAtCoderでいうところの段位みたいなやつですね!
この画像はちょっと昔の画像なので今だと人数は結構変わってますが、割合は大体こんな感じだと思ってください。

ぱっと見で分かるように、AtCoderにない紫色と一文字目が黒でそれ以降が赤のやつ*1があります。

ちなみにAtCoderとの色の対応はだいたいこんな感じになってます。←個人差あり!


また、AtCoderはアカウントを作るとレートが0から始まりますが、なんとこどふぉでは始めるだけでレートが1500ももらえちゃいます!お得ですね。

Divisionとコンテスト

次に、AtCoderにはない概念であるDivisionと呼ばれるものについて説明します。Divisionはざっくりいうと色よりも更に大雑把に参加者を分類したものという感じです。

DivisionにはDiv1, Div2, Div3の三つの種類があり、基本的に自分のDivisionのコンテストにしか参加することはできません。そのため、自分がどのDivisionに属しているのかを上の表を確認して把握しておきましょう。*2

よくわからなければ始めたばっかり(初回やレートが水色以下)の時はコンテスト名にDiv2かDiv3ってかいてあるやつに出ておけばいいと覚えておけばとりあえずはなんとかなります(´-ω-)ウム

問題傾向

AtCoderは数学力と考察力が必要な問題が多い(ぴーよ調べ)のに対して、こどふぉは典型的なアルゴリズムや実装力が重視される問題の割合が多い(ぴーよ調べ)ように感じます。
令和になってからABCが6問体制になってAtCoderでも典型的な問題が出ることが増えましたが、こどふぉで典型力をつけておくとABCで良い成績を残しやすいとあるレッドコーダーが言っていたらしいです。(ぴーよ調べ)

コンテストのシステム

まず、問題文が英語かロシア語です!!!
ここでハードルが上がっている人も多いのではないかと思いますし実際英語が苦手科目だったぼくもその一人だったのですが、これは数回コンテストに出ると割と慣れます。*3逆に競プロの能力と英語の能力が同時に身に着けられると思うと一石二鳥なのです(神ω神)
ちなみにぼくは英語の能力よりもサンプルを見てそれっぽい問題の内容を推測する能力が異常に発達しました。


そして、ここからが本題ですがAtCoderがコンテスト中に問題の正解/不正解がわかるフルフィードバック形式が採用されているのに対して、こどふぉのコンテストではSystem Test形式が採用されています。


System Test形式とは簡単に言うと二回のテストを通過してはじめて得点が獲得できるシステムです。
コンテスト中にはpretestと呼ばれる20~30個の少し緩めの*4テストケースでのチェックに正解すると仮の得点がもらえるのですが、コンテスト終了後にSystem Testと呼ばれる数百個のテストケースでより厳しい最終チェックが行われ、それを通過できないとせっかく獲得した点数を失ってしまいます:;(´◦ω◦`);:

他にも、問題を解いた時にもらえる点数が時間とともに減っていったり他人のガバガバなコードの間違いを指摘して点数をゲットできたりといったこどふぉ独自のルールが色々あります。
より詳しいルールを知りたい方は公式のルール(注意:英語です)をご覧ください。



追記 (2019/10/18)
この記事では触れなかった具体的なCodeforcesのサイトの使い方に関してはNoiminさんの記事に詳しくまとまっていて公式サイトの英語を読むより遥かにわかりやすいのでこちらも併せてご覧ください|´-`)


noimin.hatenablog.com




ここまではAtCoderとこどふぉの違いについてみていきましたが、ここからはこどふぉのいい点を布教していきたいと思います≡⊂( ^-^)⊃

Codeforcesのここがいい!

Writerの数が多い

こどふぉは大規模なので作問をするWriterの人数も多いです。
Writerの人数が多ければ多いほど、ある分野に偏りすぎることなく様々な分野の問題が出題されるのでメリットが大きいです。また、AtCoderではあまりWriterをすることのない海外の有名な競プロerが作問をしていることもあるのでとても勉強になります。

コンテストの開催頻度が多い

これはさっきの話ともつながってるのですが、Writerをする人の人数が多いので必然的に問題ストックが豊富になりコンテストを開催できる回数が簡単に増やせます。
実際、多いときには一週間に3~4回コンテストが開かれることがあります。

これは余談なんですが、コンテスト中に普段の自分より高い集中力が出せたり、普段一人で解いていて解けなかった問題よりコンテスト中に解けなかった問題のほうが記憶に残ったりすると思いませんか?
ある論文によると、実際にコンテスト中とコンテスト外では明確な脳波の変化がみられ、コンテスト中に解いた問題のほうが記憶に残りやすいことが明らかになっています。*5

プログラミング能力向上や楽しさの点からみても、コンテスト回数が多いことはとてもメリットが多いと思います!

一回当たりのレート変動が大きい

こどふぉはAtCoderに比べるとコンテスト毎のレート変動が激しいです。AtCoderは失敗に優しいとよく言われますがこどふぉには慈悲がないので平気でレートが100以上消し飛んだりします。しかし、失敗したときの下がり幅が大きい一方で成功した時の上がり幅もとても大きいので自分がなれると思っていなかった色になれたり精進の成果が出やすいのも魅力の一つだと思っていますo('ー'o)♪

バーチャルコンテスト

こどふぉではバーチャルコンテストというシステムが公式の機能として備わっています。
バーチャルコンテストではこれまで開催された過去のコンテストの中から好きなコンテストを選んで本番通りの制限時間の中で練習することができます。

この機能が公式についているだけでもすごいのですが、こどふぉのバーチャルコンテストではただ制限時間があるだけではなく順位表や問題を解いた人数などが本番のコンテストと同じように変化していきます。
つまり、バーチャルコンテスト開始直後に順位表を眺めても最終結果が見えたりしてしまうことがなく文字通り本番と全く同じ環境で練習できるのです!!!

最後に

ここまで読んでくださってありがとうございました(人´∀`)
いろいろ書きましたが実際に試してみるのが一番だと思うので少しでも興味持ってくださった方がいればここからアカウントを作ってみるといいと思います。
こどふぉのコンテストは時差の関係で夜遅いことが多いのでコンテストに参加できないという方もバーチャルコンテストなどで問題を解くと練習になるのでおすすめです。
あと、定期的にVirtual Judgeでバーチャルコンテストをやってるので参加してくれる方募集中です。(宣伝)

*1: nutella(←なんて読むのw)と呼ぶそうです。この色は世界で20人くらいしかいません。色が見るからにつよそう(◎_◎;)

*2:紫コーダーはDiv1とDiv2のどちらのコンテストにも参加できますがDiv1とDiv2が同時開催されているときはDiv1にしか参加できません

*3:英語が全く分からなくても最悪Google翻訳にかければだいたい何とかなります。

*4:どれくらい緩いかはwriterさんの温情によります。

*5:嘘です。すみません。