結果

問題 No.45 回転寿司
ユーザー hitoyozake
提出日時 2020-03-01 16:37:08
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 3 ms / 5,000 ms
コード長 1,097 bytes
コンパイル時間 682 ms
コンパイル使用メモリ 70,464 KB
最終ジャッジ日時 2025-01-09 03:42:06
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 30
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <iostream>
#include <algorithm>
#include <string>

void debug(int a, int b, int tmp, int tmppre){
  std::cout << "a: " << a << ", b:" << b << ", tmp:" << tmp << ", tmppre: " << tmppre << std::endl;
}

int main(){

  int n = 0;

  std::cin >> n;

  int a = 0, b = 0;
  //aは前に取った場合,bは前に取らなかった場合
  int tmppre = 0; //1つ前の値
  std::string s;
  int gmax = 0, ngmax = 0;
  int pregmax = 0;
  for( int i = 0; i < n; ++i ){
    int tmp = 0;
    std::cin >> tmp;

    //取った場合の最大値
    //取らなかった場合の最大値
    // 取った場合の最大値 < 取らなかった場合の最大値
    //  -> 取った場合の最大値に取らなかった場合maxを代入
    // 取る場合は取らなかった場合最大値に取った値を代入
    // 取らない場合はとった場合最大値で代入

  gmax = ngmax + tmp;

  ngmax = std::max(pregmax, ngmax);

  if(gmax < ngmax){
    gmax = ngmax;
  }

  pregmax = gmax;



  }

  int out = std::max(gmax, pregmax);

  std::cout << out << std::endl;

  return 0;
}
0