#include <bits/stdc++.h>
using namespace std;
template <class T>
using vc = vector<T>;
template <class T>
using vvc = vc<vc<T>>;
template <class T>
void mkuni(vector<T>& v) {
  sort(v.begin(), v.end());
  v.erase(unique(v.begin(), v.end()), v.end());
}
long long rand_int(long long l, long long r) {
  static mt19937_64 gen(chrono::steady_clock::now().time_since_epoch().count());
  return uniform_int_distribution<long long>(l, r)(gen);
}
template <class T>
void print(T x, int suc = 1) {
  cout << x;
  if (suc == 1)
    cout << '\n';
  else
    cout << ' ';
}
template <class T>
void print(const vector<T>& v, int suc = 1) {
  for (int i = 0; i < v.size(); i++)
    print(v[i], i == (int)(v.size()) - 1 ? suc : 2);
}
int main() {
  int T;
  cin >> T;
  while (T--) {
    vector<int> n(3);
    for (int i = 0; i < 3; i++) cin >> n[i];
    int len = n[0] + n[1] + n[2] + 1;
    string ans;
    if (n[0]) {
      ans += '0';
      for (int i = 1; i <= n[0]; i++) ans += '0';
      if (n[1]) {
        ans += '1';
        n[1]--;
        if (n[1] % 2 == 1) n[1]--, ans = '1' + ans;
        for (int i = 0; i < n[1] / 2; i++) ans += "01";
        for (int i = 0; i < n[2]; i++) ans += '1';
      }
    } else {
      if (n[1]) {
        n[1]--;
        ans += "01";
        if (n[1] & 1) n[1]--, ans = '1' + ans;
        for (int i = 0; i < n[1] / 2; i++) ans += "01";
        for (int i = 0; i < n[2]; i++) ans += '1';
      } else {
        for (int i = 0; i <= n[2]; i++) ans += '1';
      }
    }
    cout << ans << '\n';
  }
}
