AdditionGame srm 498 div2 easy

  • topcoder初参戦。
  • 以下の繰り返し。
    • 一番大きい数字を選んでポイントに加算。
    • 選んだ数字を非負の範囲で1減らす。
#include <sstream>
#include <string>
#include <vector>
#include <map>
#include <algorithm>
#include <iostream>
#include <utility>
#include <set>
#include <cctype>
#include <queue>
#include <stack>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <iterator>


using namespace std;


class AdditionGame{
public:
  int mymax(int a, int b, int c){
    return max(a, max(b, c));
  }
  int getMaximumPoints(int A, int B, int C, int N){
    int ret = 0;
    int inc;
    for(int i = 0; i < N; i++){
      inc = mymax(A, B, C);
      ret += inc;
      if(A == inc && A >= 1) {A--; continue;}
      if(B == inc && B >= 1) {B--; continue;}
      if(C == inc && C >= 1) {C--; continue;}
      //cout << inc << "\t" << A << "\t" << B << "\t" << C << endl;
    }
    return ret;
  }



};