/* -*- coding: utf-8 -*- * * 2247.cc: No.2247 01 ZigZag - yukicoder */ #include #include #include #include using namespace std; /* constant */ /* typedef */ typedef pairpii; typedef vector vi; typedef vector vpii; /* global variables */ /* subroutines */ string ps2s(vpii &ps) { string s; for (auto &p: ps) { int ch = '0' + p.first; for (int j = 0; j < p.second; j++) s += ch; } return s; } string calc(int d0, int d1, int n0, int n1, int k) { int ds[2] = { d0, d1 }, ns[2] = { n0, n1 }; vpii ps; for (int i = 0; i <= k; i++) { int p = i & 1; ps.push_back({ds[p], 1}); ns[p]--; } if (ns[0] < 0 || ns[1] < 0) return "2"; int i0 = 0, i1 = ps.size() - 1; if (ps[i0].first != 0) i0++; if (ps[i1].first != 1) i1--; ps[i0].second += ns[d0]; ps[i1].second += ns[d1]; return ps2s(ps); } /* main */ int main() { int n, m, k; scanf("%d%d%d", &n, &m, &k); if (k == 0) { if (n > 0 && m > 0) { puts("-1"); return 0; } vpii ps({{0, n}, {1, m}}); string s = ps2s(ps); puts(s.c_str()); return 0; } string s0 = calc(0, 1, n, m, k); string s1 = calc(1, 0, m, n, k); string s = min(s0, s1); if (s[0] >= '2') puts("-1"); else puts(s.c_str()); return 0; }