1. 对称性,所以指定y永远最大,然后k大于k肯定走不完。
  2. 图像思路,一定要在空间中想。
  3. 最后默认最多斜线就是k,然后按照情况分类情况,减掉直线就可以。
#include <bits/stdc++.h>

using namespace std;

int main() {
    int T;
    long long x, y, k, t, ans;
    scanf("%d", &T);
    while(T--) {
        scanf("%lld%lld%lld",&x,&y,&k);
        if(x > y) { // 要到达目的地花费的最小步数是x和y的最大值,如果k小于这个值就一定到不了
            t = x;
            x = y; 
            y = t;
        }//由于是对称得,一摸一样的。
        if(y > k) { //要到达目的地花费的最小步数是x和y的最大值,如果k小于这个值就一定到不了
            puts("-1");
            continue;
        }

        ans = k;//0条直线(y-x)是偶数且(k-x)是偶数
        if((y - x) % 2) ans--; // (y-x)是奇数,有一条直线
        else if((k - x) % 2) ans -= 2;// 2 条直线(y-x)是偶数且(k-x)是奇数。
        printf("%lld\n", ans);
    }
    return 0;
}