《补题》(牛客:清楚姐姐打怪升级)

90 阅读1分钟

思维

上取整公式 (a+b-1)/b
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

const int N = 100010;

int n, t, a;
ll h[N], v[N];

bool check() {
	for (int i = 0; i < n; i ++) {
		if (a < h[i] && a <= v[i]) {
			return false;
		}
	}

	return true;
}

ll solve(ll ans) {
	for (int i = 0; i < n; i ++) {
		if (h[i] > a) {
			ans += (h[i] - v[i] + a - v[i] - 1) / (a - v[i]);
		}
		else {
			ans ++;
		}
	}

	return 1 + t * (ans - 1);
}

int main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);

	cin >> n >> t >> a;
	//怪物的数量 攻击间隔 攻击力
	
	for (int i = 0; i < n; i ++) {
		cin >> h[i] >> v[i];
		v[i] *= t;
	}
	//怪物的生命值 怪物的回血速率
	
	if (!check()) {
		cout << -1 << endl;
		return 0;
	}
	else {
		ll ans = 0;
		cout << solve(ans) << endl;
		return 0;
	} 
}