問題概要
枚のカードを使った 2 人ゲームをする。各カードには の整数値が書かれている。
ゲーム開始前、プレイヤーはそれぞれ 枚ずつのカードを配られ、ゲームに使う順番を決める。
ゲームは ターンからなり、各ターンにプレイヤーは事前に決めた順番通りカードを一枚ずつ開示する。書かれている値が大きいカードを出したプレイヤーは 1 点を得る。
各プレイヤーがカードを出す順番を表す 2 つの配列 が与えられる。 ターン経過後に、Snuke が得る得点を求めよ。
解法
問題文で提示されたルール通りに計算することで解くことができます。すなわち、有効な に関して、 となっているものの数が答えです。
コード
#define REP( i, m, n ) for ( int i = (int)( m ); i < (int)( n ); ++i ) class GreaterGameDiv2 { public: int calc( vector <int> snuke, vector <int> sothe ) { int res = 0; REP( i, 0, snuke.size() ) { res += snuke[i] > sothe[i]; } return res; } };