B 問題としては易しめ。
問題概要
レーティングが の人が
回コンテストに参加した。
回目のコンテストでは、Div.
のコンテストに参加して、もしレーティング更新対象者であれば、レーティングは
だけ加算される(負値もありうる)。
- 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; }