HDU 4811 Ball(贪心)

2014-11-24 12:57:19 · 作者: · 浏览: 0

推理一下,发现可以先求出后面放小球可以加分的最大值,然后前面的和为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; }