naiの日記

Code Golfが好き (C, Perl).たまにAtCoderとかやってます.

Google Code Jam 2019 Round3

GCJ 2019 Round3 に参加。結果はAだけ解けて332位でした。

f:id:nai_62:20190609083219p:plain

A. Zillionim

問題概要

1012枚のコインが一列に並んでいます。先手と後手で交互に、連続した1010枚のコインを取っていきます。ただし間が空いている場合連続しているとはみなされません。コインを取れなくなったら負けです。

あなたは後手です。先手は毎ターン、可能な全ての取り方から一様ランダムにコインの取り方を選びます。99.8%以上勝利しよう。

続きを読む

M.2 SSDを4Kアライメント調整したら爆速になった話

2年ほど前からメインストレージにはSATA 3.0接続の2.5インチSSD (500GB) を使っていたのですが、I/O高速化&容量アップのために今回、NVMe 1.3規格のM.2 SSDに差し替えることにしました。

購入したのはADATAの XPG GAMMIX S11 Pro (1TB) です。

……が、いざドライブをクローンしてベンチマークを取ってみると、Writeが明らかに遅い。最大3,000 MB/sを公称していますが、シーケンシャルでも800 MB/sしか出ていません。ランダムアクセスだと100 MB/s程度まで遅くなります。なんぞ……

f:id:nai_62:20190607132139p:plain

続きを読む

1151. Append Segment Time

93B@C

ctime 関数というものを生まれて初めて使いました。

108バイトでトップだったところにnuさんが突然93バイト解をsubmitされたので今年度一びっくりしました

おまけ:途中の100バイトのコードをせっかくなので供養しておきます。 strstr の使用は結構おしゃれだと思いますが、入力のhourを考慮する必要がないことが盲点で、最短にはなりませんでした。

t;
main(p,s){
  for(;gets(s);printf("%s\t00%.6s\n",s,ctime(&p)+13))
    for(p=0;!strstr(ctime(&t),s);p++)
      t++;
}

1029. Bijective base 10 add

問題文:anarchy golf - Bijective base 10 add

問題概要

Base-10 bijective numeration同士の足し算を実装せよ.

ここで,Base-10 bijective numerationとは,各桁に 0, 1, ..., 9 ではなく 1, 2, ..., A を用いる記法らしい.

続きを読む

【シレン5】原始に続く穴 『7種縛り』の提案

以下の7種のアイテムを縛って原始やると面白いですよ!

  • 金食い虫こん棒
  • かまいたち
  • 昼の盾
  • 気配察知の腕輪
  • 気配察血の腕輪
  • 回復の腕輪
  • 身かわし香の壺
続きを読む

Sharkovskii order (C) 解説 その1 ~真面目な解法編~

問題URL:anarchy golf - Sharkovskii order

8年前の問題ですが,qsortの比較関数にmainを渡したり機械語を渡したりとやりたい放題やったので,個人的に印象に残っている問題です.

開催当時はC言語で1位をとったものの,自分のコードがなぜ動いているかわからなかったのですが,最近ようやく自分のコードを解読し,なぜ動いているか理解できたので,以下に解説を残しておきます.

続きを読む