けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

AtCoder ABC 384 B - ARC Division (7Q, 灰色, 200 点)

B 問題としては易しめ。

問題概要

レーティングが  R の人が  N 回コンテストに参加した。 i 回目のコンテストでは、Div.  D_{i} のコンテストに参加して、もしレーティング更新対象者であれば、レーティングは  A_{i} だけ加算される(負値もありうる)。

  • ARC Div. 1 では、コンテスト開始時のレーティングが 1600 以上 2799 以下の参加者がレーティング更新の対象です
  • ARC Div. 2 では、コンテスト開始時のレーティングが 1200 以上 2399 以下の参加者がレーティング更新の対象です

最終的なレーティング値を求めよ。

考えたこと

問題文に書いてある通りにシミュレーションすれば OK。

コード

#include <bits/stdc++.h>
using namespace std;

vector<int> MIN = {1600, 1200};
vector<int> MAX = {2799, 2399};

int main() {
    int N, R, D, A;
    cin >> N >> R;

    for (int i = 0; i < N; i++) {
        cin >> D >> A, D--;
        if (MIN[D] <= R && R <= MAX[D]) R += A;
    }
    cout << R << endl;
}