AOJ 1077 The Great Summer Contest

問題

(http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=1077)[The Great Summer Contest]

解法

ここの説明が分かりやすいのでどうぞ(https://eagletmt.github.io/contests/blog/aoj-1077/)[プログラミングコンテストの記録]

コード

cpp
ll Math, Greedy, Geometry, DP, Graph, Other;

int main(){
  while(scanf("%lld%lld%lld%lld%lld%lld", &Math, &Greedy, &Geometry, &DP, &Graph, &Other) 
    && Math + Greedy + Geometry + DP + Graph + Other){
    ll g[3], res = 0, s;
    g[0] = Math + DP, g[1] = Greedy + Graph, g[2] = Geometry + Other;
    s = min(g[0], min(g[1], g[2]));
    for(int i = max((ll)0, s-2); i <= s; i++)
      res = max(res, (g[0]-i)/3+(g[1]-i)/3+(g[2]-i)/3+i);
    printf("%lld\n", res);
  }
  return 0;
}