L. Divide The Students

// for codeforces
void solve(){
  ll a,b,c;cin>>a>>b>>c;
  if(a<c) swap(a,c);
  ll right = max({a,b,c}); // can
  ll left = 0; // can't

  // centerにおさまるかどうかを判定
  auto check = [&](ll center){
    if(a>center){
      ll a_rest = a-center;
      if(c-center>0) return false; // 真ん中にあふれる
      ll b_rest = b-(center-c);
      if(b_rest<0) b_rest = 0;
      if(a_rest + b_rest <= center){
        return true;
      }else{
        return false;
      }
    }
    // a<=centerなのだからa, cは収まる
    // bを分配して収まるかで判定
    else{
      ll gap = (center-a) + (center-c);
      if(b-gap<=center){
        return true;
      }else{
        return false;
      }
    }
    debug("here is error");
    return true;
  };

  while(left+1!=right){
    ll center = (left+right)/2;
    if(check(center)){
      right = center;
    }else{
      left = center;
    }
  }
  p(right);
}

int main(){
    // input
    ll N; 
    cin>>N;
    
    while(N--)solve();
    
    return 0;
}