もどくんちゃんねる ガジェット部

自転車、ガジェット、映像制作、CG、Blender など

【Atcoder,C++】Coutのありなしで答えが変わる場合の対処法

Atcoderをやっていて、文字を出力するcoutがある場合とない場合で、最終的な答えが変わる状況に遭遇しました。

 

コンパイラが壊れてるんじゃないかとパソコンを叩き割りそうになりましたが、解決方法を見つけたので紹介します。

 

ズバリ解決方法は

きちんと変数の初期化をやっておくことです。

 

答えがcoutで変わっているとき僕はこのように変数を定義していました。

 int A[10][10];
  long MAX[8];
  int keta=1;
  int tmp_keta=0;
  int MAX1=0;
  int MAX2=0;

配列のAとMAX[]には後で値入れるから、ここで初期化してなくても大丈夫やろと思っていたのですが、ダメでした。

 

面倒がらずきちんと下のように初期化しておきましょう。

int A[10][10]={0};
  long MAX[8]={0};
  int keta=1;
  int tmp_keta=0;
  int MAX1=0;
  int MAX2=0;

 

以上です。