兄貴の伝説 - hatena edition -

ソフトウェア職人を目指してます

2.5 導入問題:回答例

まずは写経から。いきなり写経はどうなの?とは自分でも思いますがとりあえず。

#include <iostream>
#include <algorithm>

#include <cstdio>

int main(void) {

  int n;
  std::cin >> n;

  int max = -1 * 1000000000;
  int now, ri, min;

  std::cin >> min;

  for (auto i = 1; i < n; i++) {

    std::cin >> ri;

    printf("before : ri = %d, min = %d, max = %d, now = %d.\n", ri, min, max, now);

    now = ri - min;
    max = std::max(max, now);
    min = std::min(min, ri);

    printf("after : ri = %d, min = %d, max = %d, now = %d.\n", ri, min, max, now);
  }

  printf("max = %d.\n", max);

  return 0;
}

写経と言いつつ微妙に改変してます。途中の debug printf と max の出力部分は、ジャッジには適していないので、最終的には整形する必要がありますのでご注意。

emacs のコピペってどうやるんだっけ?int64 とか使わなくて良い?cin なんて使ったことないけど?とか、なんだかんだでここまで書くのに30分以上かかってます。体裁を気にする悪い癖が出てますね。。反復練習を繰り返すことで、このあたりのノイズを短縮していきたいです。