推理一下,發現可以先求出後面放小球可以加分的最大值,然後前面的和為0 + 1 + 2 + ...+ max,max最大為6,因為每個球最多算左右兩邊
代碼:
#include#include using namespace std; long long a, b, c; long long tra(long long num) { return num > 2 ? 2 : num; } int main() { while (cin >> a >> b >> c) { long long sum = tra(a) + tra(b) + tra(c); long long hav = max(0ll, a + b + c - sum); cout << (hav * sum + (sum - 1) * sum / 2) << endl; } return 0; }