Skip to content

Instantly share code, notes, and snippets.

@lava
Created November 30, 2012 22:15
Show Gist options
  • Save lava/4179092 to your computer and use it in GitHub Desktop.
Save lava/4179092 to your computer and use it in GitHub Desktop.
circle input file
100
200
0 1 1 1
1 0 1 1
1 2 1 1
2 1 1 1
2 3 1 1
3 2 1 1
3 4 1 1
4 3 1 1
4 5 1 1
5 4 1 1
5 6 1 1
6 5 1 1
6 7 1 1
7 6 1 1
7 8 1 1
8 7 1 1
8 9 1 1
9 8 1 1
9 10 1 1
10 9 1 1
10 11 1 1
11 10 1 1
11 12 1 1
12 11 1 1
12 13 1 1
13 12 1 1
13 14 1 1
14 13 1 1
14 15 1 1
15 14 1 1
15 16 1 1
16 15 1 1
16 17 1 1
17 16 1 1
17 18 1 1
18 17 1 1
18 19 1 1
19 18 1 1
19 20 1 1
20 19 1 1
20 21 1 1
21 20 1 1
21 22 1 1
22 21 1 1
22 23 1 1
23 22 1 1
23 24 1 1
24 23 1 1
24 25 1 1
25 24 1 1
25 26 1 1
26 25 1 1
26 27 1 1
27 26 1 1
27 28 1 1
28 27 1 1
28 29 1 1
29 28 1 1
29 30 1 1
30 29 1 1
30 31 1 1
31 30 1 1
31 32 1 1
32 31 1 1
32 33 1 1
33 32 1 1
33 34 1 1
34 33 1 1
34 35 1 1
35 34 1 1
35 36 1 1
36 35 1 1
36 37 1 1
37 36 1 1
37 38 1 1
38 37 1 1
38 39 1 1
39 38 1 1
39 40 1 1
40 39 1 1
40 41 1 1
41 40 1 1
41 42 1 1
42 41 1 1
42 43 1 1
43 42 1 1
43 44 1 1
44 43 1 1
44 45 1 1
45 44 1 1
45 46 1 1
46 45 1 1
46 47 1 1
47 46 1 1
47 48 1 1
48 47 1 1
48 49 1 1
49 48 1 1
49 50 1 1
50 49 1 1
50 51 1 1
51 50 1 1
51 52 1 1
52 51 1 1
52 53 1 1
53 52 1 1
53 54 1 1
54 53 1 1
54 55 1 1
55 54 1 1
55 56 1 1
56 55 1 1
56 57 1 1
57 56 1 1
57 58 1 1
58 57 1 1
58 59 1 1
59 58 1 1
59 60 1 1
60 59 1 1
60 61 1 1
61 60 1 1
61 62 1 1
62 61 1 1
62 63 1 1
63 62 1 1
63 64 1 1
64 63 1 1
64 65 1 1
65 64 1 1
65 66 1 1
66 65 1 1
66 67 1 1
67 66 1 1
67 68 1 1
68 67 1 1
68 69 1 1
69 68 1 1
69 70 1 1
70 69 1 1
70 71 1 1
71 70 1 1
71 72 1 1
72 71 1 1
72 73 1 1
73 72 1 1
73 74 1 1
74 73 1 1
74 75 1 1
75 74 1 1
75 76 1 1
76 75 1 1
76 77 1 1
77 76 1 1
77 78 1 1
78 77 1 1
78 79 1 1
79 78 1 1
79 80 1 1
80 79 1 1
80 81 1 1
81 80 1 1
81 82 1 1
82 81 1 1
82 83 1 1
83 82 1 1
83 84 1 1
84 83 1 1
84 85 1 1
85 84 1 1
85 86 1 1
86 85 1 1
86 87 1 1
87 86 1 1
87 88 1 1
88 87 1 1
88 89 1 1
89 88 1 1
89 90 1 1
90 89 1 1
90 91 1 1
91 90 1 1
91 92 1 1
92 91 1 1
92 93 1 1
93 92 1 1
93 94 1 1
94 93 1 1
94 95 1 1
95 94 1 1
95 96 1 1
96 95 1 1
96 97 1 1
97 96 1 1
97 98 1 1
98 97 1 1
98 99 1 1
99 98 1 1
99 0 1 1
0 99 1 1
10000
74
68
67
93
32
16
49
35
58
74
27
67
83
97
77
64
62
40
56
72
98
79
56
21
38
56
34
13
67
57
23
19
49
71
44
46
24
34
28
45
16
56
25
68
83
27
68
62
79
31
9
50
24
54
80
22
14
36
84
64
1
82
57
84
65
32
73
58
34
61
70
55
65
29
6
75
95
18
56
31
4
46
64
93
41
12
31
55
20
83
85
41
73
47
88
39
37
48
69
1
18
78
17
93
35
5
97
35
65
75
76
32
42
26
29
12
71
7
91
85
24
73
1
77
66
22
12
81
78
90
57
92
43
6
81
53
56
64
63
4
23
65
95
82
94
0
13
91
73
91
28
16
29
9
77
22
35
46
0
89
82
7
53
84
23
36
58
17
47
88
0
91
92
36
54
81
19
5
86
42
69
63
11
36
65
58
53
66
18
57
81
27
19
30
83
82
90
4
73
50
98
65
9
6
77
31
59
68
94
0
24
22
63
45
47
48
43
55
9
52
66
46
36
54
78
76
69
72
82
39
21
12
61
25
65
55
41
58
38
85
49
79
63
54
76
77
49
64
61
35
54
60
32
33
82
88
56
75
92
72
50
58
38
91
34
54
47
80
52
24
78
43
58
50
82
91
48
63
92
59
18
46
68
96
63
83
22
43
15
46
83
94
53
6
63
58
28
20
37
11
2
74
33
47
77
55
49
7
80
71
52
86
24
55
46
10
93
45
29
66
13
59
94
36
67
16
14
26
49
82
9
10
67
47
15
31
70
22
58
37
6
39
12
52
2
10
86
86
43
81
4
69
67
81
60
38
9
96
24
95
54
97
71
36
27
81
1
36
49
0
19
52
34
12
48
47
95
73
41
90
65
52
10
43
67
96
47
38
65
2
89
35
87
38
90
61
71
57
94
7
13
90
80
0
84
46
38
44
90
8
90
40
94
22
88
47
4
49
65
35
51
10
84
7
24
55
3
10
60
27
92
77
47
2
13
0
97
14
56
46
76
22
92
36
55
62
49
41
2
32
59
3
79
49
59
61
73
25
70
49
2
3
43
56
66
58
20
58
64
28
83
47
14
53
62
35
86
21
48
75
67
38
27
45
37
9
14
31
24
87
34
20
86
47
71
20
78
92
73
5
25
42
13
11
91
70
95
6
0
93
28
2
12
31
15
57
48
17
93
55
29
75
12
78
50
73
51
78
79
79
12
57
49
31
87
22
22
75
97
9
82
56
0
22
57
60
37
80
73
59
90
6
65
51
29
14
1
54
52
8
98
44
1
87
72
37
27
17
65
45
56
16
27
79
68
26
68
0
13
22
31
2
55
79
14
90
80
74
26
41
54
43
25
71
75
60
17
29
28
67
37
18
80
24
2
40
3
38
19
93
50
81
94
96
23
29
27
77
37
0
11
37
9
37
90
52
64
63
78
40
56
74
73
63
85
27
52
63
23
95
48
37
40
42
93
37
34
90
10
43
83
15
68
95
85
5
23
98
72
31
34
89
91
98
25
91
33
12
65
59
82
32
39
93
91
76
29
18
87
80
6
3
23
68
73
73
14
64
62
15
20
20
13
54
77
22
79
82
12
80
96
69
30
83
91
52
4
73
67
98
75
25
7
11
18
23
92
89
45
10
56
5
42
84
88
97
50
85
39
43
95
88
55
26
47
72
52
28
43
84
85
10
78
48
82
14
54
40
75
31
48
44
21
40
86
73
49
42
63
88
46
42
54
98
9
56
90
36
7
31
98
50
93
53
77
40
35
82
20
33
66
60
54
36
32
54
86
13
12
95
11
90
92
83
48
93
74
47
46
70
68
54
70
8
10
9
82
23
57
80
90
90
4
89
49
10
74
34
21
71
88
73
48
61
16
73
16
55
24
63
31
35
48
4
61
92
90
82
27
76
58
0
4
21
92
88
6
55
37
27
28
85
11
49
88
91
28
73
63
9
39
17
73
18
19
87
23
6
56
23
63
24
22
70
67
32
42
9
28
89
33
82
42
56
3
26
82
58
90
73
28
11
13
2
0
63
68
70
17
52
26
68
85
1
99
50
24
79
69
48
12
75
35
90
5
26
72
5
23
36
79
90
45
23
86
13
47
19
66
42
89
40
14
41
26
10
50
12
46
56
6
64
23
3
1
57
56
71
26
84
9
6
29
37
40
12
47
45
74
80
59
2
45
96
27
11
84
57
55
87
38
70
94
60
37
10
9
29
11
2
0
49
48
12
50
52
86
85
33
57
29
43
79
14
76
64
17
82
90
25
11
68
47
38
18
22
74
38
96
80
86
2
56
18
37
86
44
3
66
9
55
69
23
99
26
94
95
22
60
33
33
40
7
96
20
39
14
47
9
33
31
67
72
66
80
41
84
28
10
92
48
74
45
71
76
5
34
44
28
95
47
32
53
88
4
16
75
30
93
4
22
71
8
13
61
32
0
23
84
68
78
5
90
15
38
93
95
22
55
28
33
83
5
63
52
98
80
42
91
95
85
60
6
16
54
11
97
82
65
72
42
62
6
84
74
82
44
89
92
32
50
2
44
7
10
60
74
1
92
68
29
33
28
62
1
93
46
4
10
82
87
44
27
48
49
1
9
81
28
40
58
97
40
93
85
24
19
22
56
54
70
79
44
74
22
16
73
11
65
13
10
51
60
88
30
18
2
25
92
14
42
76
87
4
6
96
53
6
54
81
32
78
62
67
57
46
99
32
22
47
11
77
32
77
12
93
30
79
63
84
6
30
30
68
92
76
15
54
95
79
72
62
5
85
8
51
26
47
4
14
29
90
99
94
25
41
6
14
53
3
25
38
32
69
98
13
98
98
67
7
44
86
36
58
70
51
97
66
3
37
28
66
94
86
73
29
76
20
70
14
24
41
16
44
69
89
66
15
62
97
96
54
20
81
28
20
82
1
69
86
12
90
0
17
33
5
52
9
97
2
72
86
11
52
16
9
36
19
22
3
26
40
43
1
30
16
35
61
8
88
84
97
51
23
1
18
79
61
2
6
24
91
72
50
96
92
91
85
21
75
92
7
2
23
69
82
45
9
8
62
72
6
40
43
28
25
83
4
4
29
51
26
8
66
21
3
89
15
16
10
24
44
47
53
81
16
61
79
26
11
55
30
39
94
65
44
42
71
58
35
97
98
30
31
59
0
99
71
64
70
17
51
7
71
65
1
86
8
20
59
87
22
19
31
23
15
51
49
17
67
53
76
81
26
73
28
20
27
30
44
81
83
21
40
76
19
70
37
54
45
31
5
72
66
62
86
10
75
0
70
13
34
41
94
9
28
43
1
39
51
81
39
29
68
7
91
12
26
4
87
85
94
80
42
97
77
71
97
66
75
96
79
53
46
2
52
66
17
85
91
99
27
66
23
96
15
71
46
75
28
42
42
73
81
52
42
61
90
96
63
97
3
66
46
28
86
2
8
71
96
35
48
42
99
7
63
50
21
20
3
56
98
99
89
28
70
85
99
34
26
20
51
86
84
84
84
98
86
92
70
97
16
48
4
4
69
27
16
60
48
90
87
44
20
47
65
85
38
32
5
78
24
13
40
48
63
52
85
85
30
86
56
35
71
72
98
92
52
24
21
35
15
39
91
51
94
89
62
60
43
22
31
36
10
47
2
81
57
2
39
84
11
81
25
58
88
95
83
45
27
41
8
99
23
38
97
68
73
64
36
2
21
40
83
32
68
99
87
90
3
70
17
91
62
90
93
1
6
53
19
34
4
10
83
79
99
10
10
80
77
42
98
86
8
77
74
64
80
71
55
70
57
79
40
5
7
17
56
5
35
71
58
1
63
61
27
88
28
12
48
28
54
47
59
26
35
66
53
6
67
92
22
62
62
69
59
88
56
66
53
77
17
21
52
44
12
66
45
21
64
67
93
55
5
17
46
62
22
41
90
7
54
18
24
15
7
25
77
30
56
48
8
63
85
12
55
60
45
1
15
8
27
29
28
34
47
24
37
71
9
9
40
96
59
2
90
97
31
79
23
30
90
11
99
95
39
56
60
4
42
77
48
86
25
88
10
31
46
66
55
80
44
39
33
36
18
94
82
15
34
36
48
9
66
49
81
33
15
71
75
76
92
38
7
4
8
62
34
74
31
71
18
16
81
44
64
96
61
31
2
45
93
34
33
52
95
62
45
21
49
68
25
25
84
53
8
20
46
58
81
44
18
77
96
23
55
44
74
55
46
28
61
54
3
59
92
36
58
4
16
64
59
25
81
92
61
57
98
36
55
54
9
19
77
79
86
24
50
32
44
74
52
98
66
23
48
11
1
7
84
45
43
42
9
13
45
1
19
4
29
66
2
32
59
8
81
60
65
15
91
94
24
93
77
95
77
91
53
85
66
30
24
65
1
67
45
89
66
14
80
65
79
17
17
29
89
8
65
70
11
91
97
87
93
43
21
87
2
65
35
66
29
64
37
94
17
35
15
43
97
44
31
94
79
75
28
86
54
60
23
59
38
20
62
20
32
53
20
83
45
87
78
79
27
27
76
95
3
82
35
50
80
40
30
65
18
91
38
28
1
54
65
5
48
57
83
20
27
20
15
8
0
48
80
29
82
5
49
76
10
77
27
65
36
46
87
84
9
74
8
47
34
82
54
5
18
34
33
72
6
0
45
8
46
46
73
63
10
1
30
99
10
35
86
68
57
7
17
50
54
32
59
43
88
31
11
13
58
23
78
81
75
73
60
52
14
14
81
59
55
95
90
45
9
78
16
78
13
54
84
85
23
58
83
92
49
61
49
31
72
55
65
55
91
91
58
14
9
74
25
56
77
86
50
92
69
9
50
5
82
64
60
33
26
79
33
23
90
24
39
61
18
45
49
57
85
73
13
96
53
95
65
75
76
1
75
5
48
36
63
3
78
2
53
13
35
88
23
68
36
76
1
10
64
15
30
20
23
42
18
89
36
42
31
26
18
17
93
29
16
69
91
52
34
40
15
12
75
67
9
45
45
67
31
11
81
75
4
5
25
75
84
86
61
91
54
2
49
42
98
72
30
17
96
17
98
98
31
78
41
59
24
13
23
84
21
89
65
26
80
61
88
38
41
12
29
99
63
57
31
17
77
7
40
98
97
67
79
71
86
69
78
85
27
78
0
88
26
63
41
27
48
18
51
86
95
11
7
97
23
53
6
95
79
84
47
27
98
79
83
26
32
54
17
19
27
15
99
77
83
31
46
33
81
70
45
79
86
97
36
4
32
30
55
49
88
9
83
72
77
96
11
32
94
87
61
78
79
26
29
66
76
58
92
59
83
55
43
74
48
34
9
66
68
20
18
4
81
47
29
50
6
34
22
5
98
83
39
96
16
32
5
90
94
91
16
44
16
75
25
42
22
80
55
87
40
80
59
98
95
87
6
43
30
88
97
33
79
42
54
84
35
70
97
65
36
43
36
96
52
77
27
45
80
72
38
50
96
26
77
69
41
87
94
22
53
44
57
2
3
27
74
7
32
5
80
90
23
26
25
95
39
0
65
64
55
3
32
54
49
10
22
45
15
49
78
76
76
95
70
36
41
77
84
8
26
77
63
62
81
81
57
59
8
55
69
11
87
56
79
11
3
37
98
56
88
41
82
10
96
86
52
31
93
18
64
41
91
53
31
29
0
37
91
44
69
67
5
80
29
98
10
10
70
20
4
32
62
12
77
64
52
75
50
5
84
19
52
88
48
32
66
49
79
49
0
47
34
96
67
66
11
60
57
12
52
21
31
0
32
47
52
39
43
37
76
7
69
78
99
26
58
83
21
9
1
11
87
23
35
98
8
23
83
31
51
15
22
27
30
28
82
58
50
78
34
8
53
77
65
64
84
25
32
73
35
0
5
31
43
89
28
32
8
23
42
70
19
19
72
51
25
47
33
10
69
78
62
74
58
79
29
70
19
59
36
40
64
52
65
85
84
53
88
48
61
5
30
45
29
14
19
51
65
27
17
19
21
99
21
97
97
33
91
49
6
92
72
64
77
2
26
65
35
36
45
19
0
88
39
87
67
71
19
91
4
27
22
51
37
81
1
68
66
49
61
96
23
85
82
25
57
16
98
81
44
22
24
8
74
20
72
78
9
23
61
50
53
6
29
21
9
63
43
28
44
81
65
39
92
54
38
86
97
67
21
94
66
89
32
51
75
78
27
96
33
5
52
75
58
2
26
11
55
78
24
35
66
38
15
54
37
65
57
15
73
46
56
85
56
23
21
44
47
29
15
20
67
8
91
61
44
56
32
37
71
53
35
54
4
11
46
61
10
82
89
57
35
68
71
21
57
78
69
92
87
78
87
73
72
69
88
53
91
93
74
26
63
75
93
52
80
99
38
32
24
66
47
17
67
83
92
39
32
9
10
49
47
73
79
92
93
37
99
59
20
75
55
7
14
48
40
80
81
52
7
58
86
49
10
47
62
77
85
64
3
55
68
28
39
87
19
82
53
81
70
85
28
22
69
87
7
5
9
43
2
17
52
94
96
78
77
56
38
90
45
55
19
67
26
46
59
73
64
5
43
19
9
45
27
71
36
89
45
8
59
4
46
41
64
3
74
91
95
84
48
59
42
48
88
58
88
84
39
23
67
83
57
81
98
4
69
16
85
12
49
5
35
2
20
36
23
97
80
96
50
0
17
39
93
52
37
28
70
4
32
52
63
96
27
0
78
2
2
85
82
77
68
70
10
57
53
14
82
73
53
81
77
40
91
21
61
95
66
21
13
94
74
1
26
90
74
7
54
33
9
9
82
83
39
46
6
43
12
94
46
48
40
72
93
81
12
83
24
49
37
45
89
14
24
6
85
68
2
87
15
55
92
85
77
56
20
61
15
22
86
58
38
8
23
23
48
78
29
94
37
45
39
6
99
25
58
45
6
20
99
21
14
95
27
64
71
53
99
69
23
30
11
65
1
43
26
13
19
5
68
43
78
29
12
70
96
86
53
64
51
89
0
79
17
11
45
31
90
25
43
84
17
10
47
66
44
0
18
65
70
56
99
34
52
3
65
1
97
80
57
5
44
53
82
11
31
96
17
77
14
80
98
3
14
24
58
12
13
32
88
15
10
2
63
21
34
87
80
31
98
68
15
11
23
4
31
56
67
46
35
59
94
44
41
88
16
63
18
28
55
8
1
6
69
50
61
99
82
52
25
95
14
63
92
68
26
0
40
35
22
22
70
34
29
53
11
19
80
50
90
80
14
79
44
29
93
65
25
52
45
92
90
2
68
36
27
33
58
66
9
36
25
52
40
77
46
6
64
79
80
69
58
37
89
59
31
32
25
78
83
46
0
40
81
65
75
83
68
50
66
90
41
74
47
11
30
65
82
4
6
7
57
26
56
9
6
63
86
92
27
4
40
52
86
7
77
7
64
22
16
12
50
48
49
39
26
85
11
65
86
87
76
86
22
28
2
64
89
49
44
38
33
98
77
95
93
82
25
15
76
6
7
15
56
62
67
42
95
47
81
62
88
22
64
69
55
29
29
3
13
55
39
17
61
47
90
27
96
84
2
25
96
74
83
31
1
97
45
88
3
8
98
11
29
16
41
27
90
65
58
24
51
15
42
75
11
88
59
53
11
97
48
39
57
47
99
0
65
13
39
45
5
73
11
65
97
18
40
65
55
40
47
46
47
7
15
10
93