← Home
```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())
}
```