```go
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
func main() {
in := bufio.NewReader(os.Stdin)
var a, b, x int
fmt.Fscan(in, &a, &b, &x)
var sb strings.Builder
if a >= b {
if x%2 == 0 {
k := x/2 + 1
for i := 0; i < a-k; i++ {
sb.WriteByte('0')
}
for i := 0; i < b-(k-1); i++ {
sb.WriteByte('1')
}
for i := 0; i < x; i++ {
if i%2 == 0 {
sb.WriteByte('0')
} else {
sb.WriteByte('1')
}
}
sb.WriteByte('0')
} else {
k := (x + 1) / 2
for i := 0; i < a-(k+1); i++ {
sb.WriteByte('0')
}
for i := 0; i < b-k; i++ {
sb.WriteByte('1')
}
for i := 0; i < x+1; i++ {
if i%2 == 0 {
sb.WriteByte('0')
} else {
sb.WriteByte('1')
}
}
}
} else {
if x%2 == 0 {
k := x/2 + 1
for i := 0; i < b-k; i++ {
sb.WriteByte('1')
}
for i := 0; i < a-(k-1); i++ {
sb.WriteByte('0')
}
for i := 0; i < x; i++ {
if i%2 == 0 {
sb.WriteByte('1')
} else {
sb.WriteByte('0')
}
}
sb.WriteByte('1')
} else {
k := (x + 1) / 2
for i := 0; i < b-(k+1); i++ {
sb.WriteByte('1')
}
for i := 0; i < a-k; i++ {
sb.WriteByte('0')
}
for i := 0; i < x+1; i++ {
if i%2 == 0 {
sb.WriteByte('1')
} else {
sb.WriteByte('0')
}
}
}
}
fmt.Print(sb.String())
}
```