Educational Codeforces Round 112 (Rated for Div. 2) A. PizzaForces

发布时间 2023-10-02 17:44:24作者: zsxuan

有三种披萨:\(6\)\(8\)\(10\) 块披萨。制作时间分别需要:\(15\)\(20\)\(25\) 分钟。现在有 \(n\) 个人,每人需要一块披萨。询问使所有人能获得披萨的最快时间。

观察:发现三种披萨的性价比都一样。(否则按最优性价比贪心)

需要让得到的披萨数量 \(m \geq n\)

不妨让 \(n\)\(6\) 取模,一种解为

  • \(r = 0\) 全做 \(6\) 块披萨。
  • \(r = {1, 2}\) 做一个 \(8\) 块披萨,再全做 \(6\) 块披萨。
  • \(r = {3, 4}\) 做一个 \(10\) 块披萨,再全做 \(6\) 块披萨。
  • \(r = 5\) 全做 \(6\) 块披萨。

注意 \(n \leq 6\) 时,做 \(6\) 块披萨。

view
#include <bits/stdc++.h>
typedef long long ll;
void solve() {
	ll n; std::cin >> n;
	int m = n % 6;
	if (n <= 6) std::cout << 15 << '\n';
	else if (m == 0 || m == 5) std::cout << (n + 5) / 6 * 15 << '\n';
	else if (m == 1 || m == 2) std::cout << (n / 6) * 15 + 5 << '\n';
	else if (m == 3 || m == 4) std::cout << (n / 6) * 15 + 10 << '\n';
}
int main() {
	int _ = 1; std::cin >> _;
	while ( _-- ) { solve(); }
	return 0;
}