B. Diagonal Walking v.2

f:id:peroon:20200815165107p:plain

void solve(){
  ll x,y,k;cin>>x>>y>>k;
  if(x>k or y>k){
    p(-1); return;
  }
  // can 
  ll ans = k;
  if(k%2==0){
    // can go 0, 2, 4, ..., k
    if(x%2==1) ans--;
    if(y%2==1) ans--;
  }
  else{
    // can go 1, 3, ..., k
    if(x%2==0) ans--;
    if(y%2==0) ans--;
  }
  p(ans);
}

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