diff --git a/sysy_sets/00_main.out b/sysy_sets/00_main.out new file mode 100755 index 0000000..00750ed --- /dev/null +++ b/sysy_sets/00_main.out @@ -0,0 +1 @@ +3 diff --git a/sysy_sets/00_main.sy b/sysy_sets/00_main.sy new file mode 100755 index 0000000..0efccbf --- /dev/null +++ b/sysy_sets/00_main.sy @@ -0,0 +1,3 @@ +int main(){ + return 3; +} \ No newline at end of file diff --git a/sysy_sets/01_var_defn2.out b/sysy_sets/01_var_defn2.out new file mode 100755 index 0000000..f599e28 --- /dev/null +++ b/sysy_sets/01_var_defn2.out @@ -0,0 +1 @@ +10 diff --git a/sysy_sets/01_var_defn2.sy b/sysy_sets/01_var_defn2.sy new file mode 100755 index 0000000..8fdccfa --- /dev/null +++ b/sysy_sets/01_var_defn2.sy @@ -0,0 +1,8 @@ +//test domain of global var define and local define +int a = 3; +int b = 5; + +int main(){ + int a = 5; + return a + b; +} \ No newline at end of file diff --git a/sysy_sets/02_var_defn3.out b/sysy_sets/02_var_defn3.out new file mode 100755 index 0000000..7ed6ff8 --- /dev/null +++ b/sysy_sets/02_var_defn3.out @@ -0,0 +1 @@ +5 diff --git a/sysy_sets/02_var_defn3.sy b/sysy_sets/02_var_defn3.sy new file mode 100755 index 0000000..192d060 --- /dev/null +++ b/sysy_sets/02_var_defn3.sy @@ -0,0 +1,8 @@ +//test local var define +int main(){ + int a, b0, _c; + a = 1; + b0 = 2; + _c = 3; + return b0 + _c; +} \ No newline at end of file diff --git a/sysy_sets/03_arr_defn2.out b/sysy_sets/03_arr_defn2.out new file mode 100755 index 0000000..573541a --- /dev/null +++ b/sysy_sets/03_arr_defn2.out @@ -0,0 +1 @@ +0 diff --git a/sysy_sets/03_arr_defn2.sy b/sysy_sets/03_arr_defn2.sy new file mode 100755 index 0000000..fa1accd --- /dev/null +++ b/sysy_sets/03_arr_defn2.sy @@ -0,0 +1,4 @@ +int a[10][10]; +int main(){ + return 0; +} \ No newline at end of file diff --git a/sysy_sets/04_arr_defn3.out b/sysy_sets/04_arr_defn3.out new file mode 100755 index 0000000..8351c19 --- /dev/null +++ b/sysy_sets/04_arr_defn3.out @@ -0,0 +1 @@ +14 diff --git a/sysy_sets/04_arr_defn3.sy b/sysy_sets/04_arr_defn3.sy new file mode 100755 index 0000000..d268998 --- /dev/null +++ b/sysy_sets/04_arr_defn3.sy @@ -0,0 +1,9 @@ +//test array define +int main(){ + int a[4][2] = {}; + int b[4][2] = {1, 2, 3, 4, 5, 6, 7, 8}; + int c[4][2] = {{1, 2}, {3, 4}, {5, 6}, {7, 8}}; + int d[4][2] = {1, 2, {3}, {5}, 7 , 8}; + int e[4][2] = {{d[2][1], c[2][1]}, {3, 4}, {5, 6}, {7, 8}}; + return e[3][1] + e[0][0] + e[0][1] + a[2][0]; +} \ No newline at end of file diff --git a/sysy_sets/05_arr_defn4.out b/sysy_sets/05_arr_defn4.out new file mode 100755 index 0000000..aabe6ec --- /dev/null +++ b/sysy_sets/05_arr_defn4.out @@ -0,0 +1 @@ +21 diff --git a/sysy_sets/05_arr_defn4.sy b/sysy_sets/05_arr_defn4.sy new file mode 100755 index 0000000..51a0e2c --- /dev/null +++ b/sysy_sets/05_arr_defn4.sy @@ -0,0 +1,9 @@ +int main(){ + const int a[4][2] = {{1, 2}, {3, 4}, {}, 7}; + const int N = 3; + int b[4][2] = {}; + int c[4][2] = {1, 2, 3, 4, 5, 6, 7, 8}; + int d[N + 1][2] = {1, 2, {3}, {5}, a[3][0], 8}; + int e[4][2][1] = {{d[2][1], {c[2][1]}}, {3, 4}, {5, 6}, {7, 8}}; + return e[3][1][0] + e[0][0][0] + e[0][1][0] + d[3][0]; +} diff --git a/sysy_sets/06_const_var_defn2.out b/sysy_sets/06_const_var_defn2.out new file mode 100755 index 0000000..7ed6ff8 --- /dev/null +++ b/sysy_sets/06_const_var_defn2.out @@ -0,0 +1 @@ +5 diff --git a/sysy_sets/06_const_var_defn2.sy b/sysy_sets/06_const_var_defn2.sy new file mode 100755 index 0000000..333801c --- /dev/null +++ b/sysy_sets/06_const_var_defn2.sy @@ -0,0 +1,6 @@ +//test const gloal var define +const int a = 10, b = 5; + +int main(){ + return b; +} \ No newline at end of file diff --git a/sysy_sets/07_const_var_defn3.out b/sysy_sets/07_const_var_defn3.out new file mode 100755 index 0000000..7ed6ff8 --- /dev/null +++ b/sysy_sets/07_const_var_defn3.out @@ -0,0 +1 @@ +5 diff --git a/sysy_sets/07_const_var_defn3.sy b/sysy_sets/07_const_var_defn3.sy new file mode 100755 index 0000000..4dfd2e9 --- /dev/null +++ b/sysy_sets/07_const_var_defn3.sy @@ -0,0 +1,5 @@ +//test const local var define +int main(){ + const int a = 10, b = 5; + return b; +} \ No newline at end of file diff --git a/sysy_sets/08_const_array_defn.out b/sysy_sets/08_const_array_defn.out new file mode 100755 index 0000000..b8626c4 --- /dev/null +++ b/sysy_sets/08_const_array_defn.out @@ -0,0 +1 @@ +4 diff --git a/sysy_sets/08_const_array_defn.sy b/sysy_sets/08_const_array_defn.sy new file mode 100755 index 0000000..4238a31 --- /dev/null +++ b/sysy_sets/08_const_array_defn.sy @@ -0,0 +1,5 @@ +const int a[5]={0,1,2,3,4}; + +int main(){ + return a[4]; +} \ No newline at end of file diff --git a/sysy_sets/09_func_defn.out b/sysy_sets/09_func_defn.out new file mode 100755 index 0000000..ec63514 --- /dev/null +++ b/sysy_sets/09_func_defn.out @@ -0,0 +1 @@ +9 diff --git a/sysy_sets/09_func_defn.sy b/sysy_sets/09_func_defn.sy new file mode 100755 index 0000000..8b5acb2 --- /dev/null +++ b/sysy_sets/09_func_defn.sy @@ -0,0 +1,11 @@ +int a; +int func(int p){ + p = p - 1; + return p; +} +int main(){ + int b; + a = 10; + b = func(a); + return b; +} diff --git a/sysy_sets/10_var_defn_func.out b/sysy_sets/10_var_defn_func.out new file mode 100755 index 0000000..b8626c4 --- /dev/null +++ b/sysy_sets/10_var_defn_func.out @@ -0,0 +1 @@ +4 diff --git a/sysy_sets/10_var_defn_func.sy b/sysy_sets/10_var_defn_func.sy new file mode 100755 index 0000000..03ab608 --- /dev/null +++ b/sysy_sets/10_var_defn_func.sy @@ -0,0 +1,8 @@ +int defn(){ + return 4; +} + +int main(){ + int a=defn(); + return a; +} \ No newline at end of file diff --git a/sysy_sets/11_add2.out b/sysy_sets/11_add2.out new file mode 100755 index 0000000..ec63514 --- /dev/null +++ b/sysy_sets/11_add2.out @@ -0,0 +1 @@ +9 diff --git a/sysy_sets/11_add2.sy b/sysy_sets/11_add2.sy new file mode 100755 index 0000000..229ae98 --- /dev/null +++ b/sysy_sets/11_add2.sy @@ -0,0 +1,7 @@ +//test add +int main(){ + int a, b; + a = 10; + b = -1; + return a + b; +} \ No newline at end of file diff --git a/sysy_sets/12_addc.out b/sysy_sets/12_addc.out new file mode 100755 index 0000000..60d3b2f --- /dev/null +++ b/sysy_sets/12_addc.out @@ -0,0 +1 @@ +15 diff --git a/sysy_sets/12_addc.sy b/sysy_sets/12_addc.sy new file mode 100755 index 0000000..550ed2a --- /dev/null +++ b/sysy_sets/12_addc.sy @@ -0,0 +1,5 @@ +//test addc +const int a = 10; +int main(){ + return a + 5; +} \ No newline at end of file diff --git a/sysy_sets/13_sub2.out b/sysy_sets/13_sub2.out new file mode 100755 index 0000000..5d0b6c4 --- /dev/null +++ b/sysy_sets/13_sub2.out @@ -0,0 +1 @@ +248 diff --git a/sysy_sets/13_sub2.sy b/sysy_sets/13_sub2.sy new file mode 100755 index 0000000..54b8d5b --- /dev/null +++ b/sysy_sets/13_sub2.sy @@ -0,0 +1,7 @@ +//test sub +const int a = 10; +int main(){ + int b; + b = 2; + return b - a; +} \ No newline at end of file diff --git a/sysy_sets/14_subc.out b/sysy_sets/14_subc.out new file mode 100755 index 0000000..45a4fb7 --- /dev/null +++ b/sysy_sets/14_subc.out @@ -0,0 +1 @@ +8 diff --git a/sysy_sets/14_subc.sy b/sysy_sets/14_subc.sy new file mode 100755 index 0000000..d23843b --- /dev/null +++ b/sysy_sets/14_subc.sy @@ -0,0 +1,6 @@ +//test subc +int main(){ + int a; + a = 10; + return a - 2; +} \ No newline at end of file diff --git a/sysy_sets/15_mul.out b/sysy_sets/15_mul.out new file mode 100755 index 0000000..e373ee6 --- /dev/null +++ b/sysy_sets/15_mul.out @@ -0,0 +1 @@ +50 diff --git a/sysy_sets/15_mul.sy b/sysy_sets/15_mul.sy new file mode 100755 index 0000000..4d3453d --- /dev/null +++ b/sysy_sets/15_mul.sy @@ -0,0 +1,7 @@ +//test mul +int main(){ + int a, b; + a = 10; + b = 5; + return a * b; +} \ No newline at end of file diff --git a/sysy_sets/16_mulc.out b/sysy_sets/16_mulc.out new file mode 100755 index 0000000..7273c0f --- /dev/null +++ b/sysy_sets/16_mulc.out @@ -0,0 +1 @@ +25 diff --git a/sysy_sets/16_mulc.sy b/sysy_sets/16_mulc.sy new file mode 100755 index 0000000..b975a62 --- /dev/null +++ b/sysy_sets/16_mulc.sy @@ -0,0 +1,5 @@ +//test mulc +const int a = 5; +int main(){ + return a * 5; +} \ No newline at end of file diff --git a/sysy_sets/17_div.out b/sysy_sets/17_div.out new file mode 100755 index 0000000..0cfbf08 --- /dev/null +++ b/sysy_sets/17_div.out @@ -0,0 +1 @@ +2 diff --git a/sysy_sets/17_div.sy b/sysy_sets/17_div.sy new file mode 100755 index 0000000..49506f3 --- /dev/null +++ b/sysy_sets/17_div.sy @@ -0,0 +1,7 @@ +//test div +int main(){ + int a, b; + a = 10; + b = 5; + return a / b; +} \ No newline at end of file diff --git a/sysy_sets/18_divc.out b/sysy_sets/18_divc.out new file mode 100755 index 0000000..0cfbf08 --- /dev/null +++ b/sysy_sets/18_divc.out @@ -0,0 +1 @@ +2 diff --git a/sysy_sets/18_divc.sy b/sysy_sets/18_divc.sy new file mode 100755 index 0000000..07505ab --- /dev/null +++ b/sysy_sets/18_divc.sy @@ -0,0 +1,5 @@ +//test divc +const int a = 10; +int main(){ + return a / 5; +} \ No newline at end of file diff --git a/sysy_sets/19_mod.out b/sysy_sets/19_mod.out new file mode 100755 index 0000000..00750ed --- /dev/null +++ b/sysy_sets/19_mod.out @@ -0,0 +1 @@ +3 diff --git a/sysy_sets/19_mod.sy b/sysy_sets/19_mod.sy new file mode 100755 index 0000000..b186545 --- /dev/null +++ b/sysy_sets/19_mod.sy @@ -0,0 +1,6 @@ +//test mod +int main(){ + int a; + a = 10; + return a / 3; +} \ No newline at end of file diff --git a/sysy_sets/20_rem.out b/sysy_sets/20_rem.out new file mode 100755 index 0000000..d00491f --- /dev/null +++ b/sysy_sets/20_rem.out @@ -0,0 +1 @@ +1 diff --git a/sysy_sets/20_rem.sy b/sysy_sets/20_rem.sy new file mode 100755 index 0000000..6aa8143 --- /dev/null +++ b/sysy_sets/20_rem.sy @@ -0,0 +1,6 @@ +//test rem +int main(){ + int a; + a = 10; + return a % 3; +} \ No newline at end of file diff --git a/sysy_sets/21_if_test2.out b/sysy_sets/21_if_test2.out new file mode 100755 index 0000000..330e18d --- /dev/null +++ b/sysy_sets/21_if_test2.out @@ -0,0 +1,2 @@ +-5 +0 diff --git a/sysy_sets/21_if_test2.sy b/sysy_sets/21_if_test2.sy new file mode 100755 index 0000000..bf7b8fa --- /dev/null +++ b/sysy_sets/21_if_test2.sy @@ -0,0 +1,25 @@ +// test if-else-if +int ifElseIf() { + int a; + a = 5; + int b; + b = 10; + if(a == 6 || b == 0xb) { + return a; + } + else { + if (b == 10 && a == 1) + a = 25; + else if (b == 10 && a == -5) + a = a + 15; + else + a = -+a; + } + + return a; +} + +int main(){ + putint(ifElseIf()); + return 0; +} \ No newline at end of file diff --git a/sysy_sets/22_if_test3.out b/sysy_sets/22_if_test3.out new file mode 100755 index 0000000..7273c0f --- /dev/null +++ b/sysy_sets/22_if_test3.out @@ -0,0 +1 @@ +25 diff --git a/sysy_sets/22_if_test3.sy b/sysy_sets/22_if_test3.sy new file mode 100755 index 0000000..7f48df1 --- /dev/null +++ b/sysy_sets/22_if_test3.sy @@ -0,0 +1,18 @@ +// test if-if-else +int ififElse() { + int a; + a = 5; + int b; + b = 10; + if(a == 5) + if (b == 10) + a = 25; + else + a = a + 15; + + return (a); +} + +int main(){ + return (ififElse()); +} diff --git a/sysy_sets/23_if_test4.out b/sysy_sets/23_if_test4.out new file mode 100755 index 0000000..7273c0f --- /dev/null +++ b/sysy_sets/23_if_test4.out @@ -0,0 +1 @@ +25 diff --git a/sysy_sets/23_if_test4.sy b/sysy_sets/23_if_test4.sy new file mode 100755 index 0000000..fb01502 --- /dev/null +++ b/sysy_sets/23_if_test4.sy @@ -0,0 +1,18 @@ +// test if-{if-else} +int if_ifElse_() { + int a; + a = 5; + int b; + b = 10; + if(a == 5){ + if (b == 10) + a = 25; + else + a = a + 15; + } + return (a); +} + +int main(){ + return (if_ifElse_()); +} diff --git a/sysy_sets/24_if_test5.out b/sysy_sets/24_if_test5.out new file mode 100755 index 0000000..7273c0f --- /dev/null +++ b/sysy_sets/24_if_test5.out @@ -0,0 +1 @@ +25 diff --git a/sysy_sets/24_if_test5.sy b/sysy_sets/24_if_test5.sy new file mode 100755 index 0000000..39cf890 --- /dev/null +++ b/sysy_sets/24_if_test5.sy @@ -0,0 +1,18 @@ +// test if-{if}-else +int if_if_Else() { + int a; + a = 5; + int b; + b = 10; + if(a == 5){ + if (b == 10) + a = 25; + } + else + a = a + 15; + return (a); +} + +int main(){ + return (if_if_Else()); +} diff --git a/sysy_sets/25_while_if.out b/sysy_sets/25_while_if.out new file mode 100755 index 0000000..abe17ac --- /dev/null +++ b/sysy_sets/25_while_if.out @@ -0,0 +1,2 @@ +88 +0 diff --git a/sysy_sets/25_while_if.sy b/sysy_sets/25_while_if.sy new file mode 100755 index 0000000..47b8b79 --- /dev/null +++ b/sysy_sets/25_while_if.sy @@ -0,0 +1,31 @@ +int get_one(int a) { + return 1; +} + +int deepWhileBr(int a, int b) { + int c; + c = a + b; + while (c < 75) { + int d; + d = 42; + if (c < 100) { + c = c + d; + if (c > 99) { + int e; + e = d * 2; + if (get_one(0) == 1) { + c = e * 2; + } + } + } + } + return (c); +} + +int main() { + int p; + p = 2; + p = deepWhileBr(p, p); + putint(p); + return 0; +} \ No newline at end of file diff --git a/sysy_sets/26_while_test1.out b/sysy_sets/26_while_test1.out new file mode 100755 index 0000000..00750ed --- /dev/null +++ b/sysy_sets/26_while_test1.out @@ -0,0 +1 @@ +3 diff --git a/sysy_sets/26_while_test1.sy b/sysy_sets/26_while_test1.sy new file mode 100755 index 0000000..d184d5b --- /dev/null +++ b/sysy_sets/26_while_test1.sy @@ -0,0 +1,18 @@ +int doubleWhile() { + int i; + i = 5; + int j; + j = 7; + while (i < 100) { + i = i + 30; + while(j < 100){ + j = j + 6; + } + j = j - 100; + } + return (j); +} + +int main() { + return doubleWhile(); +} diff --git a/sysy_sets/27_while_test2.out b/sysy_sets/27_while_test2.out new file mode 100755 index 0000000..fb1e7bc --- /dev/null +++ b/sysy_sets/27_while_test2.out @@ -0,0 +1 @@ +54 diff --git a/sysy_sets/27_while_test2.sy b/sysy_sets/27_while_test2.sy new file mode 100755 index 0000000..d1fad82 --- /dev/null +++ b/sysy_sets/27_while_test2.sy @@ -0,0 +1,31 @@ +int FourWhile() { + int a; + a = 5; + int b; + int c; + b = 6; + c = 7; + int d; + d = 10; + while (a < 20) { + a = a + 3; + while(b < 10){ + b = b + 1; + while(c == 7){ + c = c - 1; + while(d < 20){ + d = d + 3; + } + d = d - 1; + } + c = c + 1; + } + b = b - 2; + } + + return (a + (b + d) + c); +} + +int main() { + return FourWhile(); +} diff --git a/sysy_sets/28_while_test3.out b/sysy_sets/28_while_test3.out new file mode 100755 index 0000000..4099407 --- /dev/null +++ b/sysy_sets/28_while_test3.out @@ -0,0 +1 @@ +23 diff --git a/sysy_sets/28_while_test3.sy b/sysy_sets/28_while_test3.sy new file mode 100755 index 0000000..47ffb5f --- /dev/null +++ b/sysy_sets/28_while_test3.sy @@ -0,0 +1,55 @@ +int g; +int h; +int f; +int e; +int EightWhile() { + int a; + a = 5; + int b; + int c; + b = 6; + c = 7; + int d; + d = 10; + while (a < 20) { + a = a + 3; + while(b < 10){ + b = b + 1; + while(c == 7){ + c = c - 1; + while(d < 20){ + d = d + 3; + while(e > 1){ + e = e-1; + while(f > 2){ + f = f -2; + while(g < 3){ + g = g +10; + while(h < 10){ + h = h + 8; + } + h = h-1; + } + g = g- 8; + } + f = f + 1; + } + e = e + 1; + } + d = d - 1; + } + c = c + 1; + } + b = b - 2; + } + + return (a + (b + d) + c)-(e + d - g + h); +} + +int main() { + g = 1; + h = 2; + e = 4; + f = 6; + return EightWhile(); +} diff --git a/sysy_sets/29_break.out b/sysy_sets/29_break.out new file mode 100755 index 0000000..3bc92d4 --- /dev/null +++ b/sysy_sets/29_break.out @@ -0,0 +1 @@ +201 diff --git a/sysy_sets/29_break.sy b/sysy_sets/29_break.sy new file mode 100755 index 0000000..2ab2a05 --- /dev/null +++ b/sysy_sets/29_break.sy @@ -0,0 +1,15 @@ +//test break +int main(){ + int i; + i = 0; + int sum; + sum = 0; + while(i < 100){ + if(i == 50){ + break; + } + sum = sum + i; + i = i + 1; + } + return sum; +} \ No newline at end of file diff --git a/sysy_sets/30_continue.out b/sysy_sets/30_continue.out new file mode 100755 index 0000000..7facc89 --- /dev/null +++ b/sysy_sets/30_continue.out @@ -0,0 +1 @@ +36 diff --git a/sysy_sets/30_continue.sy b/sysy_sets/30_continue.sy new file mode 100755 index 0000000..b20cd55 --- /dev/null +++ b/sysy_sets/30_continue.sy @@ -0,0 +1,16 @@ +//test continue +int main(){ + int i; + i = 0; + int sum; + sum = 0; + while(i < 100){ + if(i == 50){ + i = i + 1; + continue; + } + sum = sum + i; + i = i + 1; + } + return sum; +} \ No newline at end of file diff --git a/sysy_sets/31_while_if_test1.out b/sysy_sets/31_while_if_test1.out new file mode 100755 index 0000000..ca55a6c --- /dev/null +++ b/sysy_sets/31_while_if_test1.out @@ -0,0 +1 @@ +198 diff --git a/sysy_sets/31_while_if_test1.sy b/sysy_sets/31_while_if_test1.sy new file mode 100755 index 0000000..2d2b9fb --- /dev/null +++ b/sysy_sets/31_while_if_test1.sy @@ -0,0 +1,25 @@ +// test while-if +int whileIf() { + int a; + a = 0; + int b; + b = 0; + while (a < 100) { + if (a == 5) { + b = 25; + } + else if (a == 10) { + b = 42; + } + else { + b = a * 2; + } + a = a + 1; + } + return (b); +} + + +int main(){ + return (whileIf()); +} diff --git a/sysy_sets/32_while_if_test2.out b/sysy_sets/32_while_if_test2.out new file mode 100755 index 0000000..f906e18 --- /dev/null +++ b/sysy_sets/32_while_if_test2.out @@ -0,0 +1 @@ +96 diff --git a/sysy_sets/32_while_if_test2.sy b/sysy_sets/32_while_if_test2.sy new file mode 100755 index 0000000..34c92da --- /dev/null +++ b/sysy_sets/32_while_if_test2.sy @@ -0,0 +1,23 @@ +int ifWhile() { + int a; + a = 0; + int b; + b = 3; + if (a == 5) { + while(b == 2){ + b = b + 2; + } + b = b + 25; + } + else + while (a < 5) { + b = b * 2; + a = a + 1; + } + return (b); +} + + +int main(){ + return (ifWhile()); +} diff --git a/sysy_sets/33_while_if_test3.out b/sysy_sets/33_while_if_test3.out new file mode 100755 index 0000000..d22307c --- /dev/null +++ b/sysy_sets/33_while_if_test3.out @@ -0,0 +1 @@ +88 diff --git a/sysy_sets/33_while_if_test3.sy b/sysy_sets/33_while_if_test3.sy new file mode 100755 index 0000000..ef16dfa --- /dev/null +++ b/sysy_sets/33_while_if_test3.sy @@ -0,0 +1,25 @@ +int deepWhileBr(int a, int b) { + int c; + c = a + b; + while (c < 75) { + int d; + d = 42; + if (c < 100) { + c = c + d; + if (c > 99) { + int e; + e = d * 2; + if (1 == 1) { + c = e * 2; + } + } + } + } + return (c); +} + +int main() { + int p; + p = 2; + return deepWhileBr(p, p); +} diff --git a/sysy_sets/34_arr_expr_len.out b/sysy_sets/34_arr_expr_len.out new file mode 100755 index 0000000..82cced2 --- /dev/null +++ b/sysy_sets/34_arr_expr_len.out @@ -0,0 +1 @@ +51 diff --git a/sysy_sets/34_arr_expr_len.sy b/sysy_sets/34_arr_expr_len.sy new file mode 100755 index 0000000..391776e --- /dev/null +++ b/sysy_sets/34_arr_expr_len.sy @@ -0,0 +1,11 @@ +const int N = -1; +int arr[N + 2 * 4 - 99 / 99] = {1, 2, 33, 4, 5, 6}; + +int main() { + int i = 0, sum = 0; + while (i < 6) { + sum = sum + arr[i]; + i = i + 1; + } + return sum; +} diff --git a/sysy_sets/35_op_priority1.out b/sysy_sets/35_op_priority1.out new file mode 100755 index 0000000..425151f --- /dev/null +++ b/sysy_sets/35_op_priority1.out @@ -0,0 +1 @@ +40 diff --git a/sysy_sets/35_op_priority1.sy b/sysy_sets/35_op_priority1.sy new file mode 100755 index 0000000..2d745b2 --- /dev/null +++ b/sysy_sets/35_op_priority1.sy @@ -0,0 +1,9 @@ +//test the priority of add and mul +int main(){ + int a, b, c, d; + a = 10; + b = 4; + c = 2; + d = 2; + return c + a * b - d; +} \ No newline at end of file diff --git a/sysy_sets/36_op_priority2.out b/sysy_sets/36_op_priority2.out new file mode 100755 index 0000000..a45fd52 --- /dev/null +++ b/sysy_sets/36_op_priority2.out @@ -0,0 +1 @@ +24 diff --git a/sysy_sets/36_op_priority2.sy b/sysy_sets/36_op_priority2.sy new file mode 100755 index 0000000..ac9c015 --- /dev/null +++ b/sysy_sets/36_op_priority2.sy @@ -0,0 +1,9 @@ +//test the priority of add and mul +int main(){ + int a, b, c, d; + a = 10; + b = 4; + c = 2; + d = 2; + return (c + a) * (b - d); +} \ No newline at end of file diff --git a/sysy_sets/37_op_priority3.out b/sysy_sets/37_op_priority3.out new file mode 100755 index 0000000..425151f --- /dev/null +++ b/sysy_sets/37_op_priority3.out @@ -0,0 +1 @@ +40 diff --git a/sysy_sets/37_op_priority3.sy b/sysy_sets/37_op_priority3.sy new file mode 100755 index 0000000..e04c930 --- /dev/null +++ b/sysy_sets/37_op_priority3.sy @@ -0,0 +1,7 @@ +//test the priority of unary operator and binary operator +int main(){ + int a, b; + a = 10; + b = 30; + return a - -5 + b + -5; +} \ No newline at end of file diff --git a/sysy_sets/38_op_priority4.in b/sysy_sets/38_op_priority4.in new file mode 100755 index 0000000..ecfbc7c --- /dev/null +++ b/sysy_sets/38_op_priority4.in @@ -0,0 +1 @@ +0 1 1 1 1 diff --git a/sysy_sets/38_op_priority4.out b/sysy_sets/38_op_priority4.out new file mode 100755 index 0000000..d00491f --- /dev/null +++ b/sysy_sets/38_op_priority4.out @@ -0,0 +1 @@ +1 diff --git a/sysy_sets/38_op_priority4.sy b/sysy_sets/38_op_priority4.sy new file mode 100755 index 0000000..6246557 --- /dev/null +++ b/sysy_sets/38_op_priority4.sy @@ -0,0 +1,19 @@ +int a; +int b; +int c; +int d; +int e; +int main() +{ + a=getint(); + b=getint(); + c=getint(); + d=getint(); + e=getint(); + int flag=0; + if(a-b*c!=d-a/c||a*b/c==e+d||a+b+c==d+e) + { + flag=1; + } + return flag; +} diff --git a/sysy_sets/39_op_priority5.out b/sysy_sets/39_op_priority5.out new file mode 100755 index 0000000..6ed281c --- /dev/null +++ b/sysy_sets/39_op_priority5.out @@ -0,0 +1,2 @@ +1 +1 diff --git a/sysy_sets/39_op_priority5.sy b/sysy_sets/39_op_priority5.sy new file mode 100755 index 0000000..ac787fc --- /dev/null +++ b/sysy_sets/39_op_priority5.sy @@ -0,0 +1,15 @@ +int a = 1; +int b = 0; +int c = 1; +int d = 2; +int e = 4; +int main() +{ + int flag=0; + if(a * b / c == e + d && a * (a + b) + c <= d + e || a - (b * c) == d - a / c) + { + flag=1; + } + putint(flag); + return flag; +} \ No newline at end of file diff --git a/sysy_sets/40_unary_op.out b/sysy_sets/40_unary_op.out new file mode 100755 index 0000000..573541a --- /dev/null +++ b/sysy_sets/40_unary_op.out @@ -0,0 +1 @@ +0 diff --git a/sysy_sets/40_unary_op.sy b/sysy_sets/40_unary_op.sy new file mode 100755 index 0000000..eb5e28c --- /dev/null +++ b/sysy_sets/40_unary_op.sy @@ -0,0 +1,11 @@ +int main() { + int a; + a = 10; + if (+-!!!a) { + a = - - -1; + } + else { + a = 0; + } + return a; +} \ No newline at end of file diff --git a/sysy_sets/41_unary_op2.out b/sysy_sets/41_unary_op2.out new file mode 100755 index 0000000..661d826 --- /dev/null +++ b/sysy_sets/41_unary_op2.out @@ -0,0 +1,2 @@ +4 +0 diff --git a/sysy_sets/41_unary_op2.sy b/sysy_sets/41_unary_op2.sy new file mode 100755 index 0000000..a824266 --- /dev/null +++ b/sysy_sets/41_unary_op2.sy @@ -0,0 +1,14 @@ +int main() { + int a, b; + a = 070; + b = 0x4; + a = a - - 4 + + b; + if (+-!!!a) { + a = - - -1; + } + else { + a = 0 + + b; + } + putint(a); + return 0; +} \ No newline at end of file diff --git a/sysy_sets/42_empty_stmt.out b/sysy_sets/42_empty_stmt.out new file mode 100755 index 0000000..aabe6ec --- /dev/null +++ b/sysy_sets/42_empty_stmt.out @@ -0,0 +1 @@ +21 diff --git a/sysy_sets/42_empty_stmt.sy b/sysy_sets/42_empty_stmt.sy new file mode 100755 index 0000000..a8c161f --- /dev/null +++ b/sysy_sets/42_empty_stmt.sy @@ -0,0 +1,5 @@ +int main() { + int a = 10; + ; + return a * 2 + 1; +} diff --git a/sysy_sets/43_logi_assign.in b/sysy_sets/43_logi_assign.in new file mode 100755 index 0000000..8835c07 --- /dev/null +++ b/sysy_sets/43_logi_assign.in @@ -0,0 +1 @@ +4 4 diff --git a/sysy_sets/43_logi_assign.out b/sysy_sets/43_logi_assign.out new file mode 100755 index 0000000..d00491f --- /dev/null +++ b/sysy_sets/43_logi_assign.out @@ -0,0 +1 @@ +1 diff --git a/sysy_sets/43_logi_assign.sy b/sysy_sets/43_logi_assign.sy new file mode 100755 index 0000000..dd96553 --- /dev/null +++ b/sysy_sets/43_logi_assign.sy @@ -0,0 +1,15 @@ +int a; +int b; +int main() +{ + a=getint(); + b=getint(); + int c; + if (a==b&&a!=3) { + c = 1; + } + else { + c = 0; + } + return c; +} diff --git a/sysy_sets/44_stmt_expr.out b/sysy_sets/44_stmt_expr.out new file mode 100755 index 0000000..670473d --- /dev/null +++ b/sysy_sets/44_stmt_expr.out @@ -0,0 +1,2 @@ +1024 +0 diff --git a/sysy_sets/44_stmt_expr.sy b/sysy_sets/44_stmt_expr.sy new file mode 100755 index 0000000..a5f5bb5 --- /dev/null +++ b/sysy_sets/44_stmt_expr.sy @@ -0,0 +1,13 @@ +int k; +const int n = 10; +int main () { + int i = 0; + k = 1; + while (i <= n - 1) { + i = i + 1; + k + 1; + k = k + k; + } + putint(k); + return k; +} diff --git a/sysy_sets/45_comment1.out b/sysy_sets/45_comment1.out new file mode 100755 index 0000000..7ed6ff8 --- /dev/null +++ b/sysy_sets/45_comment1.out @@ -0,0 +1 @@ +5 diff --git a/sysy_sets/45_comment1.sy b/sysy_sets/45_comment1.sy new file mode 100755 index 0000000..89bc54b --- /dev/null +++ b/sysy_sets/45_comment1.sy @@ -0,0 +1,12 @@ +//test comment +int main(){ + int a; + a = 5; + //int b = 4; + //a = b + a; + /*/* + b = 1; + // b = 2 + */ + return a; +} \ No newline at end of file diff --git a/sysy_sets/46_hex_defn.out b/sysy_sets/46_hex_defn.out new file mode 100755 index 0000000..60d3b2f --- /dev/null +++ b/sysy_sets/46_hex_defn.out @@ -0,0 +1 @@ +15 diff --git a/sysy_sets/46_hex_defn.sy b/sysy_sets/46_hex_defn.sy new file mode 100755 index 0000000..3f20fdf --- /dev/null +++ b/sysy_sets/46_hex_defn.sy @@ -0,0 +1,6 @@ +// test hexadecimal define +int main(){ + int a; + a = 0xf; + return a; +} \ No newline at end of file diff --git a/sysy_sets/47_hex_oct_add.out b/sysy_sets/47_hex_oct_add.out new file mode 100755 index 0000000..d22307c --- /dev/null +++ b/sysy_sets/47_hex_oct_add.out @@ -0,0 +1 @@ +88 diff --git a/sysy_sets/47_hex_oct_add.sy b/sysy_sets/47_hex_oct_add.sy new file mode 100755 index 0000000..545a8cd --- /dev/null +++ b/sysy_sets/47_hex_oct_add.sy @@ -0,0 +1,7 @@ +//test add of hex and oct +int main(){ + int a, b; + a = 0xf; + b = 0xc; + return a + b + 075; +} \ No newline at end of file diff --git a/sysy_sets/48_assign_complex_expr.out b/sysy_sets/48_assign_complex_expr.out new file mode 100755 index 0000000..d0890d1 --- /dev/null +++ b/sysy_sets/48_assign_complex_expr.out @@ -0,0 +1,2 @@ +-171 +0 diff --git a/sysy_sets/48_assign_complex_expr.sy b/sysy_sets/48_assign_complex_expr.sy new file mode 100755 index 0000000..c6471a7 --- /dev/null +++ b/sysy_sets/48_assign_complex_expr.sy @@ -0,0 +1,18 @@ +// Use complex expression in assign structure +int main () { + int a; + int b; + int c; + int d; + int result; + a = 5; + b = 5; + c = 1; + d = -2; + result = (d * 1 / 2) + (a - b) - -(c + 3) % 2; + putint(result); + result = ((d % 2 + 67) + -(a - b) - -((c + 2) % 2)); + result = result + 3; + putint(result); + return 0; +} diff --git a/sysy_sets/49_if_complex_expr.out b/sysy_sets/49_if_complex_expr.out new file mode 100755 index 0000000..389e262 --- /dev/null +++ b/sysy_sets/49_if_complex_expr.out @@ -0,0 +1,2 @@ +2 +0 diff --git a/sysy_sets/49_if_complex_expr.sy b/sysy_sets/49_if_complex_expr.sy new file mode 100755 index 0000000..32c897c --- /dev/null +++ b/sysy_sets/49_if_complex_expr.sy @@ -0,0 +1,21 @@ +// Use complex expression in if structure +int main () { + int a; + int b; + int c; + int d; + int result; + a = 5; + b = 5; + c = 1; + d = -2; + result = 2; + if ((d * 1 / 2) < 0 || (a - b) != 0 && (c + 3) % 2 != 0) { + putint(result); + } + if ((d % 2 + 67) < 0 || (a - b) != 0 && (c + 2) % 2 != 0) { + result = 4; + putint(result); + } + return 0; +} diff --git a/sysy_sets/50_short_circuit.in b/sysy_sets/50_short_circuit.in new file mode 100755 index 0000000..71f0f6a --- /dev/null +++ b/sysy_sets/50_short_circuit.in @@ -0,0 +1,4 @@ +11 +10 +100 +99 \ No newline at end of file diff --git a/sysy_sets/50_short_circuit.out b/sysy_sets/50_short_circuit.out new file mode 100755 index 0000000..882e4db --- /dev/null +++ b/sysy_sets/50_short_circuit.out @@ -0,0 +1,2 @@ +11111210 +0 diff --git a/sysy_sets/50_short_circuit.sy b/sysy_sets/50_short_circuit.sy new file mode 100755 index 0000000..322855d --- /dev/null +++ b/sysy_sets/50_short_circuit.sy @@ -0,0 +1,21 @@ +int g = 0; + +int func(int n) { + g = g + n; + putint(g); + return g; +} + +int main() { + int i; + i = getint(); + if (i > 10 && func(i)) i = 1; else i = 0; + i = getint(); + if (i > 11 && func(i)) i = 1; else i = 0; + i = getint(); + if (i <= 99 || func(i)) i = 1; else i = 0; + i = getint(); + if (i <= 100 || func(i)) i = 1; else i = 0; + if (!func(99) && func(100)) i = 1; else i = 0; + return 0; +} diff --git a/sysy_sets/51_short_circuit3.out b/sysy_sets/51_short_circuit3.out new file mode 100755 index 0000000..bf36edb --- /dev/null +++ b/sysy_sets/51_short_circuit3.out @@ -0,0 +1,5 @@ +0 3 0 3 +3 3 +ADF +CIJK +0 diff --git a/sysy_sets/51_short_circuit3.sy b/sysy_sets/51_short_circuit3.sy new file mode 100755 index 0000000..26061ee --- /dev/null +++ b/sysy_sets/51_short_circuit3.sy @@ -0,0 +1,44 @@ +int a, b, d; + +int set_a(int val) { a = val; return a; } +int set_b(int val) { b = val; return b; } +int set_d(int val) { d = val; return d; } + +int main() +{ + a = 2; b = 3; + if (set_a(0) && set_b(1)) {} + putint(a); putch(32); + putint(b); putch(32); + + a = 2; b = 3; + if (set_a(0) && set_b(1)) ; + putint(a); putch(32); + putint(b); putch(10); + + const int c = 1; + d = 2; + if (c >= 1 && set_d(3)) ; + putint(d); putch(32); + if (c <= 1 || set_d(4)) {} + putint(d); putch(10); + + if (16 >= (3 - (2 + 1))) { putch(65); } + if ((25 - 7) != (36 - 6 * 3)) putch(66); + if (1 < 8 != 7 % 2) { putch(67); } + if (3 > 4 == 0) { putch(68); } + if (1 == 0x66 <= 077) putch(69); + if (5 - 6 == -!0) putch(70); + putch(10); + + int i0 = 0, i1 = 1, i2 = 2, i3 = 3, i4 = 4; + while (i0 && i1) putch(32); + if (i0 || i1) putch(67); + if (i0 >= i1 || i1 <= i0) putch(72); + if (i2 >= i1 && i4 != i3) { putch(73); } + if (i0 == !i1 && i3 < i3 || i4 >= i4) { putch(74); } + if (i0 == !i1 || i3 < i3 && i4 >= i4) putch(75); + putch(10); + + return 0; +} diff --git a/sysy_sets/52_scope.out b/sysy_sets/52_scope.out new file mode 100755 index 0000000..b261da1 --- /dev/null +++ b/sysy_sets/52_scope.out @@ -0,0 +1,2 @@ +1 +0 diff --git a/sysy_sets/52_scope.sy b/sysy_sets/52_scope.sy new file mode 100755 index 0000000..7be1453 --- /dev/null +++ b/sysy_sets/52_scope.sy @@ -0,0 +1,27 @@ +int a = 7; + +int func() { + int b = a; + int a = 1; + if (a == b) { + a = a + 1; + return 1; + } + else + return 0; +} + +int main() { + int result = 0; + int i = 0; + while (i < 100) { + if (func() == 1) + result = result + 1; + i = i + 1; + } + if (result < 100) + putint(1); + else + putint(0); + return 0; +} diff --git a/sysy_sets/53_scope2.out b/sysy_sets/53_scope2.out new file mode 100755 index 0000000..eba9a77 --- /dev/null +++ b/sysy_sets/53_scope2.out @@ -0,0 +1,2 @@ +-40 +62 diff --git a/sysy_sets/53_scope2.sy b/sysy_sets/53_scope2.sy new file mode 100755 index 0000000..4457362 --- /dev/null +++ b/sysy_sets/53_scope2.sy @@ -0,0 +1,26 @@ +int k; + +int main() { + k = 3389; + if (k < 10000) { + k = k + 1; + int k = 112; + while (k > 10) { + k = k - 88; + if (k < 1000) { + int g = 9; + { + int l = 11; + { + g = 10; + k = k - g; + int g = 11; + k = k + g + l; + } + } + } + } + putint(k); + } + return k; +} diff --git a/sysy_sets/54_hidden_var.out b/sysy_sets/54_hidden_var.out new file mode 100755 index 0000000..bf03568 --- /dev/null +++ b/sysy_sets/54_hidden_var.out @@ -0,0 +1,6 @@ +331 +1 +218 +5 +6719 +0 diff --git a/sysy_sets/54_hidden_var.sy b/sysy_sets/54_hidden_var.sy new file mode 100755 index 0000000..734fc53 --- /dev/null +++ b/sysy_sets/54_hidden_var.sy @@ -0,0 +1,54 @@ + +int b = 5; +int c[4] = {6, 7, 8, 9}; + +int main() +{ + int a; + a = 1; + { + int a; + a = 2; + { + a = 3; + putint(a); + } + putint(a); + } + putint(a); putch(10); + + while (a < 5) { + int a = 0; + a = a + 1; + if (a) + break; + } + putint(a); putch(10); + + { + { + { + {} + } + c[2] = 1; + { + int c[2][8] = {{0, 9}, 8, 3}; + } + } + } + + { + int b = 2; + if (c[2]) { + int c[7][1][5] = {{}, {}, {2, 1, 8}, {{}}}; + putint(c[b][0][0]); + putint(c[b][0][1]); + putint(c[b][0][2]); + } + } + putch(10); + + putint(b); putch(10); + putint(c[0]); putint(c[1]); putint(c[2]); putint(c[3]); putch(10); + return 0; +} diff --git a/sysy_sets/55_sort_test1.out b/sysy_sets/55_sort_test1.out new file mode 100755 index 0000000..c9f2be1 --- /dev/null +++ b/sysy_sets/55_sort_test1.out @@ -0,0 +1,11 @@ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +0 diff --git a/sysy_sets/55_sort_test1.sy b/sysy_sets/55_sort_test1.sy new file mode 100755 index 0000000..8491e90 --- /dev/null +++ b/sysy_sets/55_sort_test1.sy @@ -0,0 +1,41 @@ +int n; +int bubblesort(int arr[]) +{ + int i; + int j; + i =0; + while(i < n-1){ + // Last i elements are already in place + j = 0; + while(j < n-i-1){ + if (arr[j] > arr[j+1]) { + // swap(&arr[j], &arr[j+1]); + int tmp; + tmp = arr[j+1]; + arr[j+1] = arr[j]; + arr[j] = tmp; + } + j = j + 1; + } + i = i + 1; + } + return 0; +} + +int main(){ + n = 10; + int a[10]; + a[0]=4;a[1]=3;a[2]=9;a[3]=2;a[4]=0; + a[5]=1;a[6]=6;a[7]=5;a[8]=7;a[9]=8; + int i; + i = bubblesort(a); + while (i < n) { + int tmp; + tmp = a[i]; + putint(tmp); + tmp = 10; + putch(tmp); + i = i + 1; + } + return 0; +} diff --git a/sysy_sets/56_sort_test2.out b/sysy_sets/56_sort_test2.out new file mode 100755 index 0000000..c9f2be1 --- /dev/null +++ b/sysy_sets/56_sort_test2.out @@ -0,0 +1,11 @@ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +0 diff --git a/sysy_sets/56_sort_test2.sy b/sysy_sets/56_sort_test2.sy new file mode 100755 index 0000000..8ec1764 --- /dev/null +++ b/sysy_sets/56_sort_test2.sy @@ -0,0 +1,39 @@ +int n; +int insertsort(int a[]) +{ + int i; + i = 1; + while(i-1&&temp k - 1) + { + j = j - 1; + } + + if(i < j) + { + arr[i] = arr[j]; + i = i + 1; + } + + while(i < j && arr[i] < k) + { + i = i + 1; + } + + if(i < j) + { + arr[j] = arr[i]; + j = j - 1; + } + } + + arr[i] = k; + int tmp; + tmp = i - 1; + tmp = QuickSort(arr, low, tmp); + tmp = i + 1; + tmp = QuickSort(arr, tmp, high); + } + return 0; +} + +int main(){ + n = 10; + int a[10]; + a[0]=4;a[1]=3;a[2]=9;a[3]=2;a[4]=0; + a[5]=1;a[6]=6;a[7]=5;a[8]=7;a[9]=8; + int i; + i = 0; + int tmp; + tmp = 9; + i = QuickSort(a, i, tmp); + while (i < n) { + int tmp; + tmp = a[i]; + putint(tmp); + tmp = 10; + putch(tmp); + i = i + 1; + } + return 0; +} diff --git a/sysy_sets/58_sort_test4.out b/sysy_sets/58_sort_test4.out new file mode 100755 index 0000000..c9f2be1 --- /dev/null +++ b/sysy_sets/58_sort_test4.out @@ -0,0 +1,11 @@ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +0 diff --git a/sysy_sets/58_sort_test4.sy b/sysy_sets/58_sort_test4.sy new file mode 100755 index 0000000..9280cd1 --- /dev/null +++ b/sysy_sets/58_sort_test4.sy @@ -0,0 +1,49 @@ +int n; +int select_sort(int A[],int n) +{ + int i; + int j; + int min; + i =0; + while(i < n-1) + { + min=i;// + j = i + 1; + while(j < n) + { + if(A[min]>A[j]) + { + min=j; + } + j=j+1; + } + if(min!=i) + { + int tmp; + tmp = A[min]; + A[min] = A[i]; + A[i] = tmp; + } + i = i + 1; + } + return 0; +} + +int main(){ + n = 10; + int a[10]; + a[0]=4;a[1]=3;a[2]=9;a[3]=2;a[4]=0; + a[5]=1;a[6]=6;a[7]=5;a[8]=7;a[9]=8; + int i; + i = 0; + i = select_sort(a, n); + while (i < n) { + int tmp; + tmp = a[i]; + putint(tmp); + tmp = 10; + putch(tmp); + i = i + 1; + } + return 0; +} diff --git a/sysy_sets/59_sort_test5.out b/sysy_sets/59_sort_test5.out new file mode 100755 index 0000000..c9f2be1 --- /dev/null +++ b/sysy_sets/59_sort_test5.out @@ -0,0 +1,11 @@ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +0 diff --git a/sysy_sets/59_sort_test5.sy b/sysy_sets/59_sort_test5.sy new file mode 100755 index 0000000..6c634e5 --- /dev/null +++ b/sysy_sets/59_sort_test5.sy @@ -0,0 +1,65 @@ +int n; +int swap (int array[], int i, int j){ + int temp; + temp = array[i]; + array[i] = array[j]; + array[j] = temp; + return 0; +} +int heap_ajust(int arr[], int start, int end) { + int dad; + dad = start; + int son; + son = dad * 2 + 1; + while (son < end + 1) { // + if (son < end && arr[son] < arr[son + 1]) + son = son + 1; + if (arr[dad] > arr[son]) + return 0; + else { + dad = swap(arr,dad,son); + dad = son; + son = dad * 2 + 1; + } + } + return 0; +} +int heap_sort(int arr[], int len) { + int i; + int tmp; + i = len / 2 - 1; + while ( i > -1) { + tmp = len - 1; + tmp = heap_ajust(arr, i, tmp); + i = i - 1; + } + i = len - 1; + while ( i > 0) { + int tmp0; + tmp0 = 0; + tmp = swap(arr,tmp0,i); + tmp = i - 1; + tmp = heap_ajust(arr, tmp0, tmp); + i = i-1; + } + return 0; +} + +int main(){ + n = 10; + int a[10]; + a[0]=4;a[1]=3;a[2]=9;a[3]=2;a[4]=0; + a[5]=1;a[6]=6;a[7]=5;a[8]=7;a[9]=8; + int i; + i = 0; + i = heap_sort(a, n); + while (i < n) { + int tmp; + tmp = a[i]; + putint(tmp); + tmp = 10; + putch(tmp); + i = i + 1; + } + return 0; +} diff --git a/sysy_sets/60_sort_test6.out b/sysy_sets/60_sort_test6.out new file mode 100755 index 0000000..c9f2be1 --- /dev/null +++ b/sysy_sets/60_sort_test6.out @@ -0,0 +1,11 @@ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +0 diff --git a/sysy_sets/60_sort_test6.sy b/sysy_sets/60_sort_test6.sy new file mode 100755 index 0000000..24093c7 --- /dev/null +++ b/sysy_sets/60_sort_test6.sy @@ -0,0 +1,53 @@ +int n; + +int counting_sort(int ini_arr[], int sorted_arr[], int n) { + int count_arr[10]; + int i; + int j; + int k; + k = 0; + i = 0; + j = 0; + while(k < 10){ + count_arr[k] = 0; + k = k + 1; + } + while(i < n) + { + count_arr[ini_arr[i]] = count_arr[ini_arr[i]] + 1; + i = i + 1; + } + k = 1; + while(k < 10){ + count_arr[k] = count_arr[k] + count_arr[k - 1]; + k = k + 1; + } + j = n; + while( j > 0){ + count_arr[ini_arr[j - 1]] = count_arr[ini_arr[j - 1]] - 1; + sorted_arr[count_arr[ini_arr[j - 1]]] = ini_arr[j - 1]; + j = j - 1; + } + return 0; +} + + +int main(){ + n = 10; + int a[10]; + a[0]=4;a[1]=3;a[2]=9;a[3]=2;a[4]=0; + a[5]=1;a[6]=6;a[7]=5;a[8]=7;a[9]=8; + int i; + i = 0; + int b[10]; + i = counting_sort(a, b, n); + while (i < n) { + int tmp; + tmp = b[i]; + putint(tmp); + tmp = 10; + putch(tmp); + i = i + 1; + } + return 0; +} diff --git a/sysy_sets/61_sort_test7.in b/sysy_sets/61_sort_test7.in new file mode 100755 index 0000000..623bd2a --- /dev/null +++ b/sysy_sets/61_sort_test7.in @@ -0,0 +1,11 @@ +97 +-10525 -9882 48155 -22162 -38879 52218 -44913 14799 -52541 19859 + 23040 38767 -39850 -2221 -63865 51868 64903 -3812 -58581 -14684 +-29113 12117 -32032 -58451 -59283 -24783 -10753 -18185 28370 7266 + 760 30956 -35818 -52888 -37486 21562 14967 53534 46231 -46019 +-46994 -62145 24886 18009 63111 -14203 40779 51479 36163 14992 + 57399 -58381 5335 -38236 4245 -33049 33608 -63687 37320 -32676 + 6602 40444 1715 11292 2406 16023 1996 -60066 -52763 -16559 + 53676 22077 57606 46802 -2033 -64412 -58092 61266 59389 -38805 + 1155 59786 35700 52562 9161 -2723 -57451 46501 -2730 38395 + -2556 -38481 52802 -47314 -21799 -18640 60818 diff --git a/sysy_sets/61_sort_test7.out b/sysy_sets/61_sort_test7.out new file mode 100755 index 0000000..9edc34d --- /dev/null +++ b/sysy_sets/61_sort_test7.out @@ -0,0 +1,2 @@ +97: -64412 -63865 -63687 -62145 -60066 -59283 -58581 -58451 -58381 -58092 -57451 -52888 -52763 -52541 -47314 -46994 -46019 -44913 -39850 -38879 -38805 -38481 -38236 -37486 -35818 -33049 -32676 -32032 -29113 -24783 -22162 -21799 -18640 -18185 -16559 -14684 -14203 -10753 -10525 -9882 -3812 -2730 -2723 -2556 -2221 -2033 760 1155 1715 1996 2406 4245 5335 6602 7266 9161 11292 12117 14799 14967 14992 16023 18009 19859 21562 22077 23040 24886 28370 30956 33608 35700 36163 37320 38395 38767 40444 40779 46231 46501 46802 48155 51479 51868 52218 52562 52802 53534 53676 57399 57606 59389 59786 60818 61266 63111 64903 +0 diff --git a/sysy_sets/61_sort_test7.sy b/sysy_sets/61_sort_test7.sy new file mode 100755 index 0000000..50561d3 --- /dev/null +++ b/sysy_sets/61_sort_test7.sy @@ -0,0 +1,47 @@ +int buf[2][100]; + +// sort [l, r) +void merge_sort(int l, int r) +{ + if (l + 1 >= r) + return; + + int mid = (l + r) / 2; + merge_sort(l, mid); + merge_sort(mid, r); + + int i = l, j = mid, k = l; + while (i < mid && j < r) { + if (buf[0][i] < buf[0][j]) { + buf[1][k] = buf[0][i]; + i = i + 1; + } else { + buf[1][k] = buf[0][j]; + j = j + 1; + } + k = k + 1; + } + while (i < mid) { + buf[1][k] = buf[0][i]; + i = i + 1; + k = k + 1; + } + while (j < r) { + buf[1][k] = buf[0][j]; + j = j + 1; + k = k + 1; + } + + while (l < r) { + buf[0][l] = buf[1][l]; + l = l + 1; + } +} + +int main() +{ + int n = getarray(buf[0]); + merge_sort(0, n); + putarray(n, buf[0]); + return 0; +} diff --git a/sysy_sets/62_percolation.in b/sysy_sets/62_percolation.in new file mode 100755 index 0000000..60b26e8 --- /dev/null +++ b/sysy_sets/62_percolation.in @@ -0,0 +1,10 @@ +2 2 +3 1 +4 2 +4 4 +1 2 +2 3 +2 1 +3 2 +3 4 +3 1 diff --git a/sysy_sets/62_percolation.out b/sysy_sets/62_percolation.out new file mode 100755 index 0000000..9807191 --- /dev/null +++ b/sysy_sets/62_percolation.out @@ -0,0 +1,2 @@ +8 +0 diff --git a/sysy_sets/62_percolation.sy b/sysy_sets/62_percolation.sy new file mode 100755 index 0000000..a4fdae8 --- /dev/null +++ b/sysy_sets/62_percolation.sy @@ -0,0 +1,82 @@ +int array[110]; +int n; +void init(int n) { + int i = 1; + while (i <= n * n + 1) { + array[i] = -1; + i = i + 1; + } +} + +int findfa(int a) { + if (array[a] == a) + return a; + else { + array[a] = findfa(array[a]); + return array[a]; + } +} +void mmerge(int a, int b) { + int m = findfa(a); + int n = findfa(b); + if (m != n) array[m] = n; +} +int main() { + int t, m; + int a, b; + t = 1; + while (t) { + t = t - 1; + n = 4; + m = 10; + int i = 0; + int flag = 0; + init(n); + int k = n * n + 1; + + while (i < m) { + a = getint(); + b = getint(); + + if (!flag) { + int loc = n * (a - 1) + b; + + array[loc] = loc; + if (a == 1) { + array[0] = 0; + mmerge(loc, 0); + } + if (a == n) { + array[k] = k; + mmerge(loc, k); + } + if (b < n && array[loc + 1] != -1) { + mmerge(loc, loc + 1); + } + if (b > 1 && array[loc - 1] != -1) { + mmerge(loc, loc - 1); + } + if (a < n && array[loc + n] != -1) { + mmerge(loc, loc + n); + } + if (a > 1 && array[loc - n] != -1) { + mmerge(loc, loc - n); + } + + if (array[0] != -1 && array[k] != -1 && findfa(0) == findfa(k)) { + flag = 1; + int tmp = i + 1; + putint(tmp); + putch(10); + } + } + + i = i + 1; + } + if (!flag) { + putint(-1); + putch(10); + } + } + return 0; +} diff --git a/sysy_sets/63_big_int_mul.out b/sysy_sets/63_big_int_mul.out new file mode 100755 index 0000000..b902582 --- /dev/null +++ b/sysy_sets/63_big_int_mul.out @@ -0,0 +1,2 @@ +3102343761271952753654505476597868729361003112012671299112096683775968059149440439438030623917912792644636180 +0 diff --git a/sysy_sets/63_big_int_mul.sy b/sysy_sets/63_big_int_mul.sy new file mode 100755 index 0000000..d2f0da1 --- /dev/null +++ b/sysy_sets/63_big_int_mul.sy @@ -0,0 +1,65 @@ +const int len = 20; + +int main() +{ + int i, j, t, n, temp; + int mult1[len] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0}; + int mult2[len] = {2, 3, 4, 2, 5, 7 ,9 ,9, 0, 1, 9, 8, 7, 6, 4, 3, 2, 1, 2, 2}; + int len1 = len; + int len2 = len; + int c1[len + 5]; + int c2[len + 5]; + int result[len * 2] = {}; + + i = 0; + while (i < len1) { + c1[i] = mult1[i]; + i = i + 1; + } + + i = 0; + while (i < len2) { + c2[i] = mult2[i]; + i = i + 1; + } + + n = len1 + len2 - 1; + + i = 0; + while (i <= n) { + result[i]=0; + i = i + 1; + } + + temp=0; + + i = len2 - 1; + while (i > -1) { + t = c2[i]; + j = len1 - 1; + while (j > -1) { + temp = result[n] + t * c1[j]; + if(temp >= 10) { + result[n] = (temp); + result[n-1] = result[n-1] + temp / 10; + } + else + result[n] = temp; + j = j - 1; + n = n - 1; + } + n = n + len1 - 1; + i = i - 1; + } + + if(result[0] != 0) + putint(result[0]); + + i = 1; + while (i <= len1 + len2 - 1) { + putint(result[i]); + i = i + 1; + } + + return 0; +} \ No newline at end of file diff --git a/sysy_sets/64_calculator.in b/sysy_sets/64_calculator.in new file mode 100755 index 0000000..d488a8b --- /dev/null +++ b/sysy_sets/64_calculator.in @@ -0,0 +1 @@ +(4 - (3 - 5) * 2 + 100) % (2^3 - 1) / 2 + 1 diff --git a/sysy_sets/64_calculator.out b/sysy_sets/64_calculator.out new file mode 100755 index 0000000..389e262 --- /dev/null +++ b/sysy_sets/64_calculator.out @@ -0,0 +1,2 @@ +2 +0 diff --git a/sysy_sets/64_calculator.sy b/sysy_sets/64_calculator.sy new file mode 100755 index 0000000..7673d8d --- /dev/null +++ b/sysy_sets/64_calculator.sy @@ -0,0 +1,184 @@ +int ints[10000]; +int intt; +int chas[10000]; +int chat; +int i=0, ii=1; +int c; +int get[10000]; +int get2[10000]; + +int isdigit(int x) { + if (x >= 48 && x <= 57) + return 1; + return 0; +} + +int power(int b, int a) { + int result = 1; + while (a != 0) { + result = result * b; + a = a - 1; + } + return result; +} + +int getstr(int get[]) { + int x = getch(); + int length = 0; + while (x != 13 && x != 10) { + get[length] = x; + length = length + 1; + x = getch(); + } + return length; +} + +void intpush(int x) +{ + intt = intt + 1; + ints[intt] = x; +} +void chapush(int x) +{ + chat = chat + 1; + chas[chat] = x; +} +int intpop() +{ + intt = intt - 1; + return ints[intt + 1]; +} +int chapop() +{ + chat = chat - 1; + return chas[chat + 1]; +} +void intadd(int x) +{ + ints[intt] = ints[intt] * 10; + ints[intt] = ints[intt] + x; +} + +int find() +{ + c = chapop(); + get2[ii] = 32; + get2[ii + 1] = c; + ii = ii + 2; + if (chat == 0) return 0; + return 1; +} + +int main() +{ + intt=0; + chat=0; + int lengets = getstr(get); + while (i < lengets) + { + if (isdigit(get[i]) == 1) + { + get2[ii] = get[i]; + ii = ii + 1; + } + else + { + if(get[i] == 40) chapush(40); + if(get[i] == 94) chapush(94); + if(get[i] == 41) + { + c = chapop(); + while (c != 40) + { + get2[ii] = 32; + get2[ii + 1]=c; + ii = ii + 2; + c = chapop(); + } + } + if (get[i] == 43) + { + while (chas[chat] == 43 || chas[chat] == 45 || chas[chat] == 42 || chas[chat] == 47 || chas[chat] == 37 || chas[chat] == 94) + { + if (find()==0)break; + } + chapush(43); + } + if (get[i] == 45) + { + while (chas[chat] == 43 || chas[chat] == 45 ||chas[chat] == 42 || chas[chat] == 47 || chas[chat] == 37 || chas[chat] == 94) + { + if(find()==0)break; + } + chapush(45); + } + if(get[i] == 42) + { + while (chas[chat] == 42 || chas[chat] == 47 ||chas[chat] == 37 || chas[chat] == 94) + { + if (find()==0)break; + } + chapush(42); + } + if (get[i] == 47) + { + while (chas[chat] == 42 || chas[chat] == 47 || chas[chat] == 37 || chas[chat] == 94) + { + if (find()==0)break; + } + chapush(47); + } + if (get[i] == 37) + { + while (chas[chat] == 42 || chas[chat] == 47 || chas[chat] == 37 || chas[chat] == 94) + { + if (find()==0)break; + } + chapush(37); + } + get2[ii] = 32; + ii = ii + 1; + } + i = i + 1; + } + while(chat > 0) + { + int c = chapop(); + get2[ii] = 32; + get2[ii + 1]=c; + ii = ii + 2; + } + get2[ii]= 64; + i = 1; + while (get2[i] != 64) + { + if (get2[i] == 43 || get2[i] == 45 || get2[i] == 42 || get2[i] == 47 || get2[i] == 37 || get2[i] == 94) + { + int a=intpop();int b=intpop();int c=0; + if (get2[i] == 43) c = a + b; + if (get2[i] == 45) c = b - a; + if (get2[i] == 42) c = a * b; + if (get2[i] == 47) c = b / a; + if (get2[i] == 37) c = b % a; + if (get2[i] == 94) c = power(b,a); + intpush(c); + } + else + { + if(get2[i] != 32) + { + intpush(get2[i] - 48); + ii=1; + while(get2[i+ii] != 32) + { + intadd(get2[i+ii] - 48); + ii = ii + 1; + } + i = i + ii-1; + } + } + i = i + 1; + } + putint(ints[1]); + return 0; +} diff --git a/sysy_sets/65_color.in b/sysy_sets/65_color.in new file mode 100755 index 0000000..36826c2 --- /dev/null +++ b/sysy_sets/65_color.in @@ -0,0 +1,2 @@ +5 +2 2 2 2 2 \ No newline at end of file diff --git a/sysy_sets/65_color.out b/sysy_sets/65_color.out new file mode 100755 index 0000000..14f95f6 --- /dev/null +++ b/sysy_sets/65_color.out @@ -0,0 +1,2 @@ +39480 +56 diff --git a/sysy_sets/65_color.sy b/sysy_sets/65_color.sy new file mode 100755 index 0000000..a18319e --- /dev/null +++ b/sysy_sets/65_color.sy @@ -0,0 +1,69 @@ +const int maxn = 18; +const int mod = 1000000007; +int dp[maxn][maxn][maxn][maxn][maxn][7]; +int list[200]; + +int equal(int a, int b) { + if (a == b) + return 1; + return 0; +} + +int dfs(int a, int b, int c, int d, int e, int last){ + if(dp[a][b][c][d][e][last] != -1) + return dp[a][b][c][d][e][last]; + if(a + b + c + d + e == 0) + return 1; + int ans = 0; + if (a) ans = (ans + (a - equal(last, 2)) * dfs(a - 1, b, c, d, e, 1)) % mod; + if (b) ans = (ans + (b - equal(last, 3)) * dfs(a + 1, b - 1, c, d, e, 2)) % mod; + if (c) ans = (ans + (c - equal(last, 4)) * dfs(a, b + 1, c - 1, d, e, 3)) % mod; + if (d) ans = (ans + (d - equal(last, 5)) * dfs(a, b, c + 1, d - 1, e, 4)) % mod; + if (e) ans = (ans + e * dfs(a, b, c, d + 1, e - 1, 5)) % mod; + dp[a][b][c][d][e][last] = ans % mod; + return dp[a][b][c][d][e][last]; +} + +int cns[20]; + +int main(){ + int n = getint(); + int i = 0; + while (i < maxn) { + int j = 0; + while(j < maxn) { + int k = 0; + while(k < maxn) { + int l = 0; + while (l < maxn) { + int m = 0; + while (m < maxn) { + int h = 0; + while (h < 7) { + dp[i][j][k][l][m][h] = -1; + h = h + 1; + } + m = m + 1; + } + l = l + 1; + } + k = k + 1; + } + j = j + 1; + } + i = i + 1; + } + + i = 0; + while (i < n) { + list[i] = getint(); + cns[list[i]] = cns[list[i]] + 1; + i = i + 1; + } + + int ans = dfs(cns[1], cns[2], cns[3], cns[4], cns[5], 0); + + putint(ans); + + return ans; +} \ No newline at end of file diff --git a/sysy_sets/66_exgcd.out b/sysy_sets/66_exgcd.out new file mode 100755 index 0000000..33a9dba --- /dev/null +++ b/sysy_sets/66_exgcd.out @@ -0,0 +1,2 @@ +13 +0 diff --git a/sysy_sets/66_exgcd.sy b/sysy_sets/66_exgcd.sy new file mode 100755 index 0000000..3abdbcf --- /dev/null +++ b/sysy_sets/66_exgcd.sy @@ -0,0 +1,22 @@ +int exgcd(int a,int b,int x[],int y[]) { + if(b == 0) { + x[0] = 1; + y[0] = 0; + return a; + } + else { + int r = exgcd(b, a % b, x, y); + int t = x[0]; + x[0] = y[0]; + y[0] = (t - a / b * y[0]); + return r; + } +} + +int main() { + int a = 7, b = 15, x[1] = {1}, y[1] = {1}; + exgcd(a, b, x, y); + x[0] = (x[0] % b + b) % b; + putint(x[0]); + return 0; +} \ No newline at end of file diff --git a/sysy_sets/67_reverse_output.in b/sysy_sets/67_reverse_output.in new file mode 100755 index 0000000..9bc5347 --- /dev/null +++ b/sysy_sets/67_reverse_output.in @@ -0,0 +1,200 @@ +0 +3 +6 +9 +12 +15 +18 +21 +24 +27 +30 +33 +36 +39 +42 +45 +48 +51 +54 +57 +60 +63 +66 +69 +72 +75 +78 +81 +84 +87 +90 +93 +96 +99 +102 +105 +108 +111 +114 +117 +120 +123 +126 +129 +132 +135 +138 +141 +144 +147 +150 +153 +156 +159 +162 +165 +168 +171 +174 +177 +180 +183 +186 +189 +192 +195 +198 +201 +204 +207 +210 +213 +216 +219 +222 +225 +228 +231 +234 +237 +240 +243 +246 +249 +252 +255 +258 +261 +264 +267 +270 +273 +276 +279 +282 +285 +288 +291 +294 +297 +300 +303 +306 +309 +312 +315 +318 +321 +324 +327 +330 +333 +336 +339 +342 +345 +348 +351 +354 +357 +360 +363 +366 +369 +372 +375 +378 +381 +384 +387 +390 +393 +396 +399 +402 +405 +408 +411 +414 +417 +420 +423 +426 +429 +432 +435 +438 +441 +444 +447 +450 +453 +456 +459 +462 +465 +468 +471 +474 +477 +480 +483 +486 +489 +492 +495 +498 +501 +504 +507 +510 +513 +516 +519 +522 +525 +528 +531 +534 +537 +540 +543 +546 +549 +552 +555 +558 +561 +564 +567 +570 +573 +576 +579 +582 +585 +588 +591 +594 +597 diff --git a/sysy_sets/67_reverse_output.out b/sysy_sets/67_reverse_output.out new file mode 100755 index 0000000..6bfa1bd --- /dev/null +++ b/sysy_sets/67_reverse_output.out @@ -0,0 +1,2 @@ +5975945915885855825795765735705675645615585555525495465435405375345315285255225195165135105075045014984954924894864834804774744714684654624594564534504474444414384354324294264234204174144114084054023993963933903873843813783753723693663633603573543513483453423393363333303273243213183153123093063033002972942912882852822792762732702672642612582552522492462432402372342312282252222192162132102072042011981951921891861831801771741711681651621591561531501471441411381351321291261231201171141111081051029996939087848178757269666360575451484542393633302724211815129630 +0 diff --git a/sysy_sets/67_reverse_output.sy b/sysy_sets/67_reverse_output.sy new file mode 100755 index 0000000..1257b4f --- /dev/null +++ b/sysy_sets/67_reverse_output.sy @@ -0,0 +1,18 @@ +void reverse(int n) { + int next; + if (n <= 1) { + next=getint(); + putint(next); + } + else { + next=getint(); + reverse(n-1); + putint(next); + } +} + +int main() { + int i=200; + reverse(i); + return 0; +} diff --git a/sysy_sets/68_brainfk.in b/sysy_sets/68_brainfk.in new file mode 100755 index 0000000..23a0b41 --- /dev/null +++ b/sysy_sets/68_brainfk.in @@ -0,0 +1,2 @@ +4010 +++++++++[->++++++++<]>+++++++++.<+++++[->-----<]>---------.<++++++++[->++++++++<]>++++++.<++++++++[->--------<]>-------------.<+++++++[->+++++++<]>++.<+++++[->+++++<]>+++++++++.+++++.-----.--------.----.<++++[->++++<]>.<++++[->----<]>--------.<++++++++[->--------<]>-.<++++++[->++++++<]>++++.<+++++[->+++++<]>.<++++[->++++<]>+.+++.<+++[->---<]>----.+.<++++++++[->--------<]>---------.<++++++++[->++++++++<]>++++++.<+++[->+++<]>+++.---.--.<++++++++[->--------<]>-------------.<+++++++++[->+++++++++<]>+++.<+++[->---<]>---.---.<++++++++[->--------<]>-----.<++++++[->++++++<]>+.<+++++[->+++++<]>+++.<++++[->++++<]>++.+.<+++++++++[->---------<]>---.<++++++[->++++++<]>++++++.<++++++[->++++++<]>+++++++.-------.-----.++++++.+++.<+++++++++[->---------<]>-.<++++++[->++++++<]>++++.<+++++[->+++++<]>++++++++.--.+.<++++++++[->--------<]>--------.<+++++++[->+++++++<]>++.<++++[->++++<]>.+++++.+++++++..---.<++++++++[->--------<]>.<+++[->---<]>---.<++++++++[->++++++++<]>+.<+++[->+++<]>++++.<+++[->---<]>-.<++++++++[->--------<]>----.<++++++[->++++++<]>+++++.<+++++[->-----<]>---------.<++++++++[->++++++++<]>++++++.<++++++++[->--------<]>-------------.<++++++++[->++++++++<]>++++++++++++++.+.+++++.<+++++++++[->---------<]>---.<++++++++[->++++++++<]>+++++++++.+++++.++++++.<+++[->---<]>------.<+++[->+++<]>++++.<+++[->---<]>----.<+++[->+++<]>+++++.+.<+++[->---<]>------.-.<++++++++[->--------<]>----.<++++++++[->++++++++<]>+++++++++.+++++.<++++++++[->--------<]>--------------.<++++++++[->++++++++<]>+++++++++++++++.+++.<+++[->---<]>-----.+++++.+++++.<+++[->---<]>----.<++++[->++++<]>+.+++++++.<+++++++++[->---------<]>--------.<++++++++[->++++++++<]>++++++++.<+++[->+++<]>++++.--------.<+++[->---<]>---.<+++[->+++<]>++++.+++++.<++++++++[->--------<]>-----.<+++[->---<]>-----.<++++++[->++++++<]>+++++.<+++++[->+++++<]>++++.<++++++++[->--------<]>------.<+++++++++[->+++++++++<]>+++.<+++[->---<]>---.---.<+++[->+++<]>++++.<+++[->---<]>----.<++++++++[->--------<]>-----.<+++++++++[->+++++++++<]>++++++.<++++[->----<]>--.<+++[->+++<]>++++.<+++[->---<]>----.<++++++++[->--------<]>-----.<++++++++[->++++++++<]>+.<+++[->+++<]>++++.<++++++++[->--------<]>--------------.<++++++++[->++++++++<]>+.<+++[->+++<]>++.---.----.+++++++++.<++++++++[->--------<]>--.<+++[->---<]>---.<++++++++[->++++++++<]>+.<++++++++[->--------<]>-.<+++++++++[->+++++++++<]>+++.<+++[->---<]>--.++++.--------.<++++++++[->--------<]>-----.<+++++++++[->+++++++++<]>+++.--.<++++[->----<]>-.<++++[->++++<]>+++++.<++++[->----<]>-.+++++++..-------.<+++[->+++<]>++++.<++++++++[->--------<]>------.<+++[->---<]>---.<++++++++[->++++++++<]>+.<+++[->+++<]>++++.<++++++++[->--------<]>--------------.<++++++++[->++++++++<]>+++++++++++++++.+++++.<+++[->---<]>---.---.<+++[->+++<]>++++.+++++.--------.+++.------.--------.+.<+++[->+++<]>++++.<+++++++++[->---------<]>-.<++++++++[->++++++++<]>+++++++++++++++.+++.<+++++++++[->---------<]>-.<++++++++[->++++++++<]>+.<++++++++[->--------<]>-.<+++++++++[->+++++++++<]>++.++.-----.<+++[->---<]>--.<+++[->+++<]>++++.<+++[->---<]>-.---.<+++[->+++<]>++++.---.<++++++++[->--------<]>---------------.<++++++++[->++++++++<]>+.<+++[->+++<]>+++.++.-.-------.<++++++++[->--------<]>-------.<+++++++++[->+++++++++<]>++++++++.<+++[->---<]>-.++++++.<++++++++[->--------<]>---------.<+++[->---<]>---.<++++++++[->++++++++<]>++++++++++++++++.----.-------.----.<++++[->++++<]>++.<+++[->---<]>-----.<++++++++[->--------<]>-----.<++++++++[->++++++++<]>+++.<+++[->+++<]>+++.--.--------.<++++++++[->--------<]>-----.<+++++++++[->+++++++++<]>+++.-----.<++++++++[->--------<]>---------------.<++++++++[->++++++++<]>+++++++++++++.--------..<+++[->+++<]>++++++.<+++++++++[->---------<]>---.<++++++++[->++++++++<]>+++++++++++++.--------.<++++++++[->--------<]>----.-.<+++++++[->+++++++<]>+++.<++++[->++++<]>++++.-------.<++++[->++++<]>+++.<++++++++[->--------<]>-------------.<++++++++[->++++++++<]>++++++++++++.<+++++++++[->---------<]>--.<++++++++[->++++++++<]>+.<+++[->+++<]>++..<+++++++[->-------<]>-------------.<+++++[->-----<]>--------.---.< diff --git a/sysy_sets/68_brainfk.out b/sysy_sets/68_brainfk.out new file mode 100755 index 0000000..843dc54 --- /dev/null +++ b/sysy_sets/68_brainfk.out @@ -0,0 +1,2 @@ +I'm Suzumiya Haruhi from the East Junior High School, and I'm not interested in ordinary humans. If there were an alien, a time traveller, an otherworlder or a superhero among you, please come to meet me! That's all. +0 diff --git a/sysy_sets/68_brainfk.sy b/sysy_sets/68_brainfk.sy new file mode 100755 index 0000000..d1ee0c1 --- /dev/null +++ b/sysy_sets/68_brainfk.sy @@ -0,0 +1,73 @@ +/* +a brainfuck interpreter +reference: https://gist.github.com/maxcountryman/1699708 +*/ + +// tape, input buffer, and read/write pointer +const int TAPE_LEN = 65536, BUFFER_LEN = 32768; +int tape[TAPE_LEN], program[BUFFER_LEN], ptr = 0; + +// read the input program +void read_program() { + int i = 0, len = getint(); + while (i < len) { + program[i] = getch(); + i = i + 1; + } + program[i] = 0; +} + +// interpret the input program +void interpret(int input[]) { + int cur_char, loop, i = 0; + while (input[i]) { + cur_char = input[i]; + if (cur_char == 62) { + // '>' + ptr = ptr + 1; + } + else if (cur_char == 60) { + // '<' + ptr = ptr - 1; + } + else if (cur_char == 43) { + // '+' + tape[ptr] = tape[ptr] + 1; + } + else if (cur_char == 45) { + // '-' + tape[ptr] = tape[ptr] - 1; + } + else if (cur_char == 46) { + // '.' + putch(tape[ptr]); + } + else if (cur_char == 44) { + // ',' + tape[ptr] = getch(); + } + else if (cur_char == 93 && tape[ptr]) { + // ']' + loop = 1; + while (loop > 0) { + i = i - 1; + cur_char = input[i]; + if (cur_char == 91) { + // '[' + loop = loop - 1; + } + else if (cur_char == 93) { + // ']' + loop = loop + 1; + } + } + } + i = i + 1; + } +} + +int main() { + read_program(); + interpret(program); + return 0; +} diff --git a/sysy_sets/69_expr_eval.in b/sysy_sets/69_expr_eval.in new file mode 100755 index 0000000..1c19e58 --- /dev/null +++ b/sysy_sets/69_expr_eval.in @@ -0,0 +1,6 @@ +5 + 1+2* 3/4- 2 *411 ; +0 -1+10*1329000/ 22219 +99 ; +1199+ 98888/2227 %112-23; + * 2; +; diff --git a/sysy_sets/69_expr_eval.out b/sysy_sets/69_expr_eval.out new file mode 100755 index 0000000..384810e --- /dev/null +++ b/sysy_sets/69_expr_eval.out @@ -0,0 +1,8 @@ +-820 +696 +1220 +panic! +-1 +panic! +-1 +0 diff --git a/sysy_sets/69_expr_eval.sy b/sysy_sets/69_expr_eval.sy new file mode 100755 index 0000000..08e95a0 --- /dev/null +++ b/sysy_sets/69_expr_eval.sy @@ -0,0 +1,145 @@ +const int TOKEN_NUM = 0, TOKEN_OTHER = 1; +int last_char = 32, num, other; +int cur_token; + +int next_char() { + last_char = getch(); + return last_char; +} + +int is_space(int c) { + if (c == 32 || c == 10) { + return 1; + } + else { + return 0; + } +} + +int is_num(int c) { + if (c >= 48 && c <= 57) { + return 1; + } + else { + return 0; + } +} + +int next_token() { + while (is_space(last_char)) next_char(); + if (is_num(last_char)) { + num = last_char - 48; + while (is_num(next_char())) { + num = num * 10 + last_char - 48; + } + cur_token = TOKEN_NUM; + } + else { + other = last_char; + next_char(); + cur_token = TOKEN_OTHER; + } + return cur_token; +} + +int panic() { + putch(112); + putch(97); + putch(110); + putch(105); + putch(99); + putch(33); + putch(10); + return -1; +} + +int get_op_prec(int op) { + // +, - + if (op == 43 || op == 45) return 10; + // *, /, % + if (op == 42 || op == 47 || op == 37) return 20; + // other + return 0; +} + +void stack_push(int s[], int v) { + s[0] = s[0] + 1; + s[s[0]] = v; +} + +int stack_pop(int s[]) { + int last = s[s[0]]; + s[0] = s[0] - 1; + return last; +} + +int stack_peek(int s[]) { + return s[s[0]]; +} + +int stack_size(int s[]) { + return s[0]; +} + +int eval_op(int op, int lhs, int rhs) { + // + + if (op == 43) return lhs + rhs; + // - + if (op == 45) return lhs - rhs; + // * + if (op == 42) return lhs * rhs; + // / + if (op == 47) return lhs / rhs; + // % + if (op == 37) return lhs % rhs; + // other + return 0; +} + +int eval() { + int oprs[256] = {}, ops[256] = {}; + // get the first value + if (cur_token != TOKEN_NUM) return panic(); + stack_push(oprs, num); + next_token(); + // evaluate + while (cur_token == TOKEN_OTHER) { + // get operator + int op = other; + if (!get_op_prec(op)) break; + next_token(); + // handle operator + while (stack_size(ops) && get_op_prec(stack_peek(ops)) >= get_op_prec(op)) { + // evaluate the current operation + int cur_op = stack_pop(ops); + int rhs = stack_pop(oprs), lhs = stack_pop(oprs); + stack_push(oprs, eval_op(cur_op, lhs, rhs)); + } + stack_push(ops, op); + // get next expression + if (cur_token != TOKEN_NUM) return panic(); + stack_push(oprs, num); + next_token(); + } + // eat ';' + next_token(); + // clear the operator stack + while (stack_size(ops)) { + int cur_op = stack_pop(ops); + int rhs = stack_pop(oprs), lhs = stack_pop(oprs); + stack_push(oprs, eval_op(cur_op, lhs, rhs)); + } + return stack_peek(oprs); +} + +int main() { + int count = getint(); + getch(); + next_token(); + while (count) { + putint(eval()); + putch(10); + count = count - 1; + } + return 0; +} diff --git a/sysy_sets/70_dijkstra.in b/sysy_sets/70_dijkstra.in new file mode 100755 index 0000000..5dc7677 --- /dev/null +++ b/sysy_sets/70_dijkstra.in @@ -0,0 +1,10 @@ +6 9 +1 2 1 +2 3 9 +1 3 12 +2 4 3 +4 3 4 +3 5 5 +4 5 13 +5 6 4 +4 6 15 diff --git a/sysy_sets/70_dijkstra.out b/sysy_sets/70_dijkstra.out new file mode 100755 index 0000000..5cfcce8 --- /dev/null +++ b/sysy_sets/70_dijkstra.out @@ -0,0 +1,2 @@ +0 1 8 4 13 17 +0 diff --git a/sysy_sets/70_dijkstra.sy b/sysy_sets/70_dijkstra.sy new file mode 100755 index 0000000..78895e6 --- /dev/null +++ b/sysy_sets/70_dijkstra.sy @@ -0,0 +1,82 @@ +const int INF = 65535; +int e[16][16]; +int book[16]; +int dis[16]; +int n, m; +int v1, v2, w; + +void Dijkstra() +{ + int i, j; + + i = 1; + while (i <= n) { + dis[i] = e[1][i]; + book[i] = 0; + i = i + 1; + } + book[1] = 1; + + i = 1; + while (i <= n - 1) { + int min_num = INF; + int min_index = 0; + int k = 1; + while (k <= n) { + if (min_num > dis[k] && book[k] == 0) { + min_num = dis[k]; + min_index = k; + } + k = k + 1; + } + book[min_index] = 1; + int j = 1; + while (j <= n) { + if (e[min_index][j] < INF) { + if (dis[j] > dis[min_index] + e[min_index][j]) { + dis[j] = dis[min_index] + e[min_index][j]; + } + } + j = j + 1; + } + i = i + 1; + } +} + +int main() +{ + int i; + n = getint(); + m = getint(); + + i = 1; + while (i <= n) { + int j = 1; + while (j <= n) { + if (i == j) + e[i][j] = 0; + else + e[i][j] = INF; + j = j + 1; + } + i = i + 1; + } + + i = 1; + while (i <= m) { + int u = getint(), v = getint(); + e[u][v] = getint(); + i = i + 1; + } + + Dijkstra(); + + i = 1; + while (i <= n) { + putint(dis[i]); + putch(32); + i = i + 1; + } + putch(10); + return 0; +} diff --git a/sysy_sets/71_full_conn.in b/sysy_sets/71_full_conn.in new file mode 100755 index 0000000..ec3c569 --- /dev/null +++ b/sysy_sets/71_full_conn.in @@ -0,0 +1,37 @@ +6 + +233 95 179 178 105 +115 190 92 216 21 +48 252 184 148 36 +252 20 92 99 18 +61 245 40 190 16 + +61 197 150 246 225 +27 99 197 227 206 +130 134 172 149 52 +147 246 171 52 84 +174 42 90 23 42 + +130 207 209 104 168 +139 248 84 142 225 +127 242 45 62 7 +102 191 119 168 190 +14 249 239 188 118 + +159 29 212 96 189 +159 220 97 71 180 +202 131 217 165 138 +94 98 86 68 140 +132 92 247 99 110 + +228 10 119 127 21 +247 8 230 81 251 +216 213 24 114 68 +83 188 240 196 231 +90 206 224 49 28 + +158 252 95 171 239 +90 66 22 221 10 +177 32 38 24 93 +227 55 4 59 211 +80 92 38 238 42 diff --git a/sysy_sets/71_full_conn.out b/sysy_sets/71_full_conn.out new file mode 100755 index 0000000..b69acee --- /dev/null +++ b/sysy_sets/71_full_conn.out @@ -0,0 +1,7 @@ +dog +cat +dog +dog +cat +cat +0 diff --git a/sysy_sets/71_full_conn.sy b/sysy_sets/71_full_conn.sy new file mode 100755 index 0000000..01f83aa --- /dev/null +++ b/sysy_sets/71_full_conn.sy @@ -0,0 +1,50 @@ + +int relu_reg(int a) +{ + if (a > 0x7F) return 0x7F; + if (a < 0) return 0; + return a; +} + +int model(int a[][5]) +{ + if (+ relu_reg( + a[0][0] * 85 + a[0][1] * 23 + a[0][2] * -82 + a[0][3] * -103 + a[0][4] * -123 + a[1][0] * 64 + a[1][1] * -120 + a[1][2] * 50 + a[1][3] * -59 + a[1][4] * 47 + a[2][0] * -111 + a[2][1] * -67 + a[2][2] * -106 + a[2][3] * -75 + a[2][4] * -102 + a[3][0] * 34 + a[3][1] * -39 + a[3][2] * 65 + a[3][3] * 47 + a[3][4] * 113 + a[4][0] * 110 + a[4][1] * 47 + a[4][2] * -4 + a[4][3] * 80 + a[4][4] * 46) * 39 + + relu_reg( + a[0][0] * -106 + a[0][1] * 126 + a[0][2] * -18 + a[0][3] * -31 + a[0][4] * -8 + a[1][0] * 47 + a[1][1] * -4 + a[1][2] * 67 + a[1][3] * -94 + a[1][4] * -121 + a[2][0] * 7 + a[2][1] * -21 + a[2][2] * -60 + a[2][3] * -43 + a[2][4] * 105 + a[3][0] * -42 + a[3][1] * 87 + a[3][2] * 29 + a[3][3] * -106 + a[3][4] * -31 + a[4][0] * -110 + a[4][1] * -100 + a[4][2] * -22 + a[4][3] * -75 + a[4][4] * -125) * 77 + + relu_reg( + a[0][0] * 26 + a[0][1] * 76 + a[0][2] * -70 + a[0][3] * 29 + a[0][4] * -95 + a[1][0] * 96 + a[1][1] * 52 + a[1][2] * -68 + a[1][3] * -5 + a[1][4] * 34 + a[2][0] * -34 + a[2][1] * 102 + a[2][2] * 6 + a[2][3] * -38 + a[2][4] * 27 + a[3][0] * 110 + a[3][1] * 116 + a[3][2] * 39 + a[3][3] * -63 + a[3][4] * -99 + a[4][0] * 65 + a[4][1] * 120 + a[4][2] * -39 + a[4][3] * -6 + a[4][4] * 94) * 127 + + relu_reg( + a[0][0] * -23 + a[0][1] * -63 + a[0][2] * 49 + a[0][3] * 50 + a[0][4] * 72 + a[1][0] * 85 + a[1][1] * -30 + a[1][2] * 12 + a[1][3] * 125 + a[1][4] * -117 + a[2][0] * -65 + a[2][1] * -67 + a[2][2] * 125 + a[2][3] * 110 + a[2][4] * -31 + a[3][0] * -123 + a[3][1] * 83 + a[3][2] * 122 + a[3][3] * 11 + a[3][4] * -23 + a[4][0] * -47 + a[4][1] * -32 + a[4][2] * -117 + a[4][3] * 95 + a[4][4] * 118) * -106 + + relu_reg( + a[0][0] * 8 + a[0][1] * 82 + a[0][2] * -104 + a[0][3] * 101 + a[0][4] * -116 + a[1][0] * -63 + a[1][1] * -16 + a[1][2] * -70 + a[1][3] * 125 + a[1][4] * 75 + a[2][0] * 66 + a[2][1] * -96 + a[2][2] * -101 + a[2][3] * -114 + a[2][4] * 59 + a[3][0] * 12 + a[3][1] * 5 + a[3][2] * -95 + a[3][3] * 116 + a[3][4] * -93 + a[4][0] * 15 + a[4][1] * 79 + a[4][2] * 3 + a[4][3] * 49 + a[4][4] * -124) * -3 + + relu_reg( + a[0][0] * 81 + a[0][1] * 68 + a[0][2] * -102 + a[0][3] * -74 + a[0][4] * 121 + a[1][0] * -15 + a[1][1] * 55 + a[1][2] * 101 + a[1][3] * -13 + a[1][4] * -62 + a[2][0] * 64 + a[2][1] * 114 + a[2][2] * 38 + a[2][3] * -21 + a[2][4] * 112 + a[3][0] * 114 + a[3][1] * 112 + a[3][2] * -10 + a[3][3] * -16 + a[3][4] * -50 + a[4][0] * -112 + a[4][1] * -116 + a[4][2] * -54 + a[4][3] * 82 + a[4][4] * -72) * 32 + + relu_reg( + a[0][0] * 15 + a[0][1] * -77 + a[0][2] * 66 + a[0][3] * -90 + a[0][4] * -6 + a[1][0] * -30 + a[1][1] * -8 + a[1][2] * 81 + a[1][3] * 2 + a[1][4] * -110 + a[2][0] * -95 + a[2][1] * 59 + a[2][2] * 52 + a[2][3] * 15 + a[2][4] * 55 + a[3][0] * -33 + a[3][1] * 14 + a[3][2] * 58 + a[3][3] * 67 + a[3][4] * 86 + a[4][0] * -79 + a[4][1] * 48 + a[4][2] * -13 + a[4][3] * -15 + a[4][4] * 66) * -95 + + relu_reg( + a[0][0] * 33 + a[0][1] * 82 + a[0][2] * 67 + a[0][3] * 30 + a[0][4] * -2 + a[1][0] * 65 + a[1][1] * 120 + a[1][2] * -13 + a[1][3] * 18 + a[1][4] * 5 + a[2][0] * 104 + a[2][1] * -119 + a[2][2] * -7 + a[2][3] * 71 + a[2][4] * 107 + a[3][0] * 24 + a[3][1] * 82 + a[3][2] * -96 + a[3][3] * -104 + a[3][4] * -121 + a[4][0] * 65 + a[4][1] * 97 + a[4][2] * 83 + a[4][3] * 46 + a[4][4] * -84) * -50 + + relu_reg( + a[0][0] * -29 + a[0][1] * 7 + a[0][2] * -70 + a[0][3] * 38 + a[0][4] * -90 + a[1][0] * -15 + a[1][1] * -32 + a[1][2] * 37 + a[1][3] * 36 + a[1][4] * -62 + a[2][0] * -125 + a[2][1] * -46 + a[2][2] * -70 + a[2][3] * 37 + a[2][4] * -73 + a[3][0] * -34 + a[3][1] * -87 + a[3][2] * -75 + a[3][3] * 71 + a[3][4] * -77 + a[4][0] * 53 + a[4][1] * 37 + a[4][2] * -103 + a[4][3] * -13 + a[4][4] * -114) * -23 + + relu_reg( + a[0][0] * 67 + a[0][1] * 42 + a[0][2] * 41 + a[0][3] * -123 + a[0][4] * -92 + a[1][0] * 10 + a[1][1] * -77 + a[1][2] * 75 + a[1][3] * 96 + a[1][4] * -51 + a[2][0] * 109 + a[2][1] * -74 + a[2][2] * -7 + a[2][3] * -122 + a[2][4] * 67 + a[3][0] * 47 + a[3][1] * 22 + a[3][2] * -68 + a[3][3] * 38 + a[3][4] * 29 + a[4][0] * 115 + a[4][1] * -121 + a[4][2] * 36 + a[4][3] * -49 + a[4][4] * 85) * 46 + > 0) + return 1; + return 0; +} + +int main() +{ + int N = getint(); + int a[5][5]; + while (N > 0) { + int i = 0; + while (i < 5) { + int j = 0; + while (j < 5) { + a[i][j] = getint(); + j = j + 1; + } + i = i + 1; + } + if (model(a)) { + // cat + putch(99); putch(97); putch(116); putch(10); + } else { + // dog + putch(100); putch(111); putch(103); putch(10); + } + N = N - 1; + } + return 0; +} diff --git a/sysy_sets/72_hanoi.in b/sysy_sets/72_hanoi.in new file mode 100755 index 0000000..76dbb71 --- /dev/null +++ b/sysy_sets/72_hanoi.in @@ -0,0 +1,5 @@ +4 +4 +7 +3 +9 diff --git a/sysy_sets/72_hanoi.out b/sysy_sets/72_hanoi.out new file mode 100755 index 0000000..7102c51 --- /dev/null +++ b/sysy_sets/72_hanoi.out @@ -0,0 +1,5 @@ +1 2, 1 3, 2 3, 1 2, 3 1, 3 2, 1 2, 1 3, 2 3, 2 1, 3 1, 2 3, 1 2, 1 3, 2 3, +1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 1 2, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 2 3, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 1 2, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 3 1, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 1 2, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 2 3, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 3 1, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 2 3, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 1 2, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 2 3, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, +1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, +1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 1 2, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 2 3, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 1 2, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 3 1, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 1 2, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 2 3, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 3 1, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 2 3, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 1 2, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 2 3, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 1 2, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 3 1, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 1 2, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 3 1, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 2 3, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 3 1, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 1 2, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 2 3, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 1 2, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 3 1, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 1 2, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 2 3, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 3 1, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 2 3, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 1 2, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 2 3, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 3 1, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 1 2, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 3 1, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 2 3, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 3 1, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 2 3, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 1 2, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 2 3, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 1 2, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 3 1, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 1 2, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 2 3, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 3 1, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 2 3, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 1 2, 3 2, 3 1, 2 1, 3 2, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, 2 1, 3 2, 3 1, 2 1, 2 3, 1 3, 1 2, 3 2, 1 3, 2 1, 2 3, 1 3, +0 diff --git a/sysy_sets/72_hanoi.sy b/sysy_sets/72_hanoi.sy new file mode 100755 index 0000000..063bef8 --- /dev/null +++ b/sysy_sets/72_hanoi.sy @@ -0,0 +1,27 @@ + +void move(int x, int y) +{ + putint(x); putch(32); putint(y); putch(44); putch(32); +} + +void hanoi(int n, int one, int two, int three) +{ + if (n == 1) + move(one, three); + else { + hanoi(n - 1, one, three, two); + move(one, three); + hanoi(n - 1, two, one, three); + } +} + +int main() +{ + int n = getint(); + while (n > 0) { + hanoi(getint(), 1, 2, 3); + putch(10); + n = n - 1; + } + return 0; +} diff --git a/sysy_sets/73_int_io.in b/sysy_sets/73_int_io.in new file mode 100755 index 0000000..98c32c2 --- /dev/null +++ b/sysy_sets/73_int_io.in @@ -0,0 +1,14 @@ + + +5 + 4006571 + + 9900 + 1504379 + + +758219 + 99336677 + + + \ No newline at end of file diff --git a/sysy_sets/73_int_io.out b/sysy_sets/73_int_io.out new file mode 100755 index 0000000..651a1bc --- /dev/null +++ b/sysy_sets/73_int_io.out @@ -0,0 +1,6 @@ +4006571 +9900 +1504379 +758219 +99336677 +0 diff --git a/sysy_sets/73_int_io.sy b/sysy_sets/73_int_io.sy new file mode 100755 index 0000000..4f1b992 --- /dev/null +++ b/sysy_sets/73_int_io.sy @@ -0,0 +1,52 @@ +const int ascii_0 = 48; + +int my_getint() +{ + int sum = 0, c; + + while (1) { + c = getch() - ascii_0; + if (c < 0 || c > 9) { + continue; + } else { + break; + } + } + sum = c; + + while (1) { + c = getch() - ascii_0; + if (c >= 0 && c <= 9) { + sum = sum * 10 + c; + } else { + break; + } + } + + return sum; +} + +void my_putint(int a) +{ + int b[16], i = 0; + while (a > 0) { + b[i] = a % 10 + ascii_0; + a = a / 10; + i = i + 1; + } + while (i > 0) { + i = i - 1; + putch(b[i]); + } +} + +int main() +{ + int n = my_getint(); + while (n > 0) { + int m = my_getint(); + my_putint(m); putch(10); + n = n - 1; + } + return 0; +} diff --git a/sysy_sets/74_kmp.in b/sysy_sets/74_kmp.in new file mode 100755 index 0000000..7e02d20 --- /dev/null +++ b/sysy_sets/74_kmp.in @@ -0,0 +1,2 @@ +abcabdbca +aababcabdabdababcabdbcadceadbcababcdcbaabsbda diff --git a/sysy_sets/74_kmp.out b/sysy_sets/74_kmp.out new file mode 100755 index 0000000..208b018 --- /dev/null +++ b/sysy_sets/74_kmp.out @@ -0,0 +1,2 @@ +23 +0 diff --git a/sysy_sets/74_kmp.sy b/sysy_sets/74_kmp.sy new file mode 100755 index 0000000..b3dd7a9 --- /dev/null +++ b/sysy_sets/74_kmp.sy @@ -0,0 +1,62 @@ + +void get_next(int str[], int next[]) +{ + next[0] = -1; + int i = 0, j = -1; + while (str[i]) { + if (j == -1 || str[i] == str[j]) { + j = j + 1; + i = i + 1; + next[i] = j; + } + else + j = next[j]; + } +} + +int KMP(int dst[], int src[]) +{ + int next[4096]; + get_next(dst, next); + + int i = 0, j = 0; + while (src[j]) { + if (dst[i] == src[j]) { + i = i + 1; + j = j + 1; + if (!dst[i]) { + return j; + } + } else { + i = next[i]; + if (i == -1) { + i = i + 1; + j = j + 1; + } + } + } + return -1; +} + +int read_str(int buf[]) +{ + int i = 0; + while (1) { + buf[i] = getch(); + if (buf[i] == 10) + break; + i = i + 1; + } + buf[i] = 0; + return i; +} + +int main() +{ + int dst[4096], src[4096]; + read_str(dst); + read_str(src); + putint(KMP(dst, src)); + putch(10); + return 0; +} \ No newline at end of file diff --git a/sysy_sets/75_max_flow.in b/sysy_sets/75_max_flow.in new file mode 100755 index 0000000..a412efb --- /dev/null +++ b/sysy_sets/75_max_flow.in @@ -0,0 +1,12 @@ +7 11 +1 6 22 +1 3 10 +1 4 56 +3 7 15 +3 5 11 +5 7 45 +4 5 100 +6 3 34 +2 3 9 +6 7 68 +6 2 6 diff --git a/sysy_sets/75_max_flow.out b/sysy_sets/75_max_flow.out new file mode 100755 index 0000000..d770642 --- /dev/null +++ b/sysy_sets/75_max_flow.out @@ -0,0 +1,2 @@ +77 +0 diff --git a/sysy_sets/75_max_flow.sy b/sysy_sets/75_max_flow.sy new file mode 100755 index 0000000..926f786 --- /dev/null +++ b/sysy_sets/75_max_flow.sy @@ -0,0 +1,96 @@ +/* + * Max flow EK with DFS. + */ +const int INF = 0x70000000; + +int size[10]; +int to[10][10]; +int cap[10][10]; +int rev[10][10]; +int used[10]; + +void my_memset(int arr[], int val, int n) +{ + int i = 0; + while (i < n) { + arr[i] = val; + i = i + 1; + } +} + +void add_node(int u, int v, int c) +{ + to[u][size[u]] = v; + cap[u][size[u]] = c; + rev[u][size[u]] = size[v]; + + to[v][size[v]] = u; + cap[v][size[v]] = 0; + rev[v][size[v]] = size[u]; + + size[u] = size[u] + 1; + size[v] = size[v] + 1; +} + +int dfs(int s, int t, int f) +{ + if (s == t) + return f; + used[s] = 1; + + int i = 0; + while (i < size[s]) { + if (used[to[s][i]]) { i = i + 1; continue; } + if (cap[s][i] <= 0) { i = i + 1; continue; } + + int min_f; + if (f < cap[s][i]) + min_f = f; + else + min_f = cap[s][i]; + int d = dfs(to[s][i], t, min_f); + + if (d > 0) { + cap[s][i] = cap[s][i] - d; + cap[to[s][i]][rev[s][i]] = cap[to[s][i]][rev[s][i]] + d; + return d; + } + i = i + 1; + } + return 0; +} + +int max_flow(int s, int t) +{ + int flow = 0; + + while (1) { + my_memset(used, 0, 10); + + int f = dfs(s, t, INF); + if (f == 0) + return flow; + flow = flow + f; + } +} + +int main() +{ + int V, E; + V = getint(); + E = getint(); + my_memset(size, 0, 10); + + while (E > 0) { + int u, v; + u = getint(); + v = getint(); + int c = getint(); + add_node(u, v, c); + E = E - 1; + } + + putint(max_flow(1, V)); + putch(10); + return 0; +} diff --git a/sysy_sets/76_n_queens.in b/sysy_sets/76_n_queens.in new file mode 100755 index 0000000..2a52714 --- /dev/null +++ b/sysy_sets/76_n_queens.in @@ -0,0 +1,2 @@ +4 +1 5 6 8 diff --git a/sysy_sets/76_n_queens.out b/sysy_sets/76_n_queens.out new file mode 100755 index 0000000..eaeb937 --- /dev/null +++ b/sysy_sets/76_n_queens.out @@ -0,0 +1,108 @@ +1 +1 3 5 2 4 +1 4 2 5 3 +2 4 1 3 5 +2 5 3 1 4 +3 1 4 2 5 +3 5 2 4 1 +4 1 3 5 2 +4 2 5 3 1 +5 2 4 1 3 +5 3 1 4 2 +2 4 6 1 3 5 +3 6 2 5 1 4 +4 1 5 2 6 3 +5 3 1 6 4 2 +1 5 8 6 3 7 2 4 +1 6 8 3 7 4 2 5 +1 7 4 6 8 2 5 3 +1 7 5 8 2 4 6 3 +2 4 6 8 3 1 7 5 +2 5 7 1 3 8 6 4 +2 5 7 4 1 8 6 3 +2 6 1 7 4 8 3 5 +2 6 8 3 1 4 7 5 +2 7 3 6 8 5 1 4 +2 7 5 8 1 4 6 3 +2 8 6 1 3 5 7 4 +3 1 7 5 8 2 4 6 +3 5 2 8 1 7 4 6 +3 5 2 8 6 4 7 1 +3 5 7 1 4 2 8 6 +3 5 8 4 1 7 2 6 +3 6 2 5 8 1 7 4 +3 6 2 7 1 4 8 5 +3 6 2 7 5 1 8 4 +3 6 4 1 8 5 7 2 +3 6 4 2 8 5 7 1 +3 6 8 1 4 7 5 2 +3 6 8 1 5 7 2 4 +3 6 8 2 4 1 7 5 +3 7 2 8 5 1 4 6 +3 7 2 8 6 4 1 5 +3 8 4 7 1 6 2 5 +4 1 5 8 2 7 3 6 +4 1 5 8 6 3 7 2 +4 2 5 8 6 1 3 7 +4 2 7 3 6 8 1 5 +4 2 7 3 6 8 5 1 +4 2 7 5 1 8 6 3 +4 2 8 5 7 1 3 6 +4 2 8 6 1 3 5 7 +4 6 1 5 2 8 3 7 +4 6 8 2 7 1 3 5 +4 6 8 3 1 7 5 2 +4 7 1 8 5 2 6 3 +4 7 3 8 2 5 1 6 +4 7 5 2 6 1 3 8 +4 7 5 3 1 6 8 2 +4 8 1 3 6 2 7 5 +4 8 1 5 7 2 6 3 +4 8 5 3 1 7 2 6 +5 1 4 6 8 2 7 3 +5 1 8 4 2 7 3 6 +5 1 8 6 3 7 2 4 +5 2 4 6 8 3 1 7 +5 2 4 7 3 8 6 1 +5 2 6 1 7 4 8 3 +5 2 8 1 4 7 3 6 +5 3 1 6 8 2 4 7 +5 3 1 7 2 8 6 4 +5 3 8 4 7 1 6 2 +5 7 1 3 8 6 4 2 +5 7 1 4 2 8 6 3 +5 7 2 4 8 1 3 6 +5 7 2 6 3 1 4 8 +5 7 2 6 3 1 8 4 +5 7 4 1 3 8 6 2 +5 8 4 1 3 6 2 7 +5 8 4 1 7 2 6 3 +6 1 5 2 8 3 7 4 +6 2 7 1 3 5 8 4 +6 2 7 1 4 8 5 3 +6 3 1 7 5 8 2 4 +6 3 1 8 4 2 7 5 +6 3 1 8 5 2 4 7 +6 3 5 7 1 4 2 8 +6 3 5 8 1 4 2 7 +6 3 7 2 4 8 1 5 +6 3 7 2 8 5 1 4 +6 3 7 4 1 8 2 5 +6 4 1 5 8 2 7 3 +6 4 2 8 5 7 1 3 +6 4 7 1 3 5 2 8 +6 4 7 1 8 2 5 3 +6 8 2 4 1 7 5 3 +7 1 3 8 6 4 2 5 +7 2 4 1 8 5 3 6 +7 2 6 3 1 4 8 5 +7 3 1 6 8 5 2 4 +7 3 8 2 5 1 6 4 +7 4 2 5 8 1 3 6 +7 4 2 8 6 1 3 5 +7 5 3 1 6 8 2 4 +8 2 4 1 7 5 3 6 +8 2 5 3 1 7 4 6 +8 3 1 6 2 5 7 4 +8 4 1 3 6 2 7 5 +107 diff --git a/sysy_sets/76_n_queens.sy b/sysy_sets/76_n_queens.sy new file mode 100755 index 0000000..5a5c086 --- /dev/null +++ b/sysy_sets/76_n_queens.sy @@ -0,0 +1,49 @@ +int ans[50], sum = 0, n; + +int row[50], line1[50], line2[100]; + +void printans() +{ + sum = sum + 1; + int i = 1; + while (i <= n) { + putint(ans[i]); + if (i == n) { + putch(10); + return; + } else + putch(32); + i = i + 1; + } +} + +void f(int step) +{ + int i = 1; + while (i <= n) { + if (row[i] != 1 && line1[step + i] == 0 && !line2[n + step - i]) { + ans[step] = i; + if (step == n) + printans(); + row[i] = 1; + line1[step + i] = 1; + line2[n + step - i] = 1; + f(step + 1); + row[i] = 0; + line1[step + i] = 0; + line2[n + step - i] = 0; + } + i = i + 1; + } +} + +int main() +{ + int N = getint(); + while (N > 0) { + n = getint(); + f(1); + N = N - 1; + } + return sum; +} diff --git a/sysy_sets/77_substr.out b/sysy_sets/77_substr.out new file mode 100755 index 0000000..1539127 --- /dev/null +++ b/sysy_sets/77_substr.out @@ -0,0 +1,3 @@ +43 +6 +0 diff --git a/sysy_sets/77_substr.sy b/sysy_sets/77_substr.sy new file mode 100755 index 0000000..95ce88f --- /dev/null +++ b/sysy_sets/77_substr.sy @@ -0,0 +1,58 @@ + +int MAX(int a, int b) +{ + if (a == b) + return a; + else if (a > b) + return a; + else + return b; +} + +int max_sum_nonadjacent(int arr[], int n) +{ + int temp[16] = {}; + temp[0] = arr[0]; + temp[1] = MAX(arr[0], arr[1]); + int i = 2; + while (i < n) { + temp[i] = MAX(temp[i - 2] + arr[i], temp[i - 1]); + i = i + 1; + } + return temp[n - 1]; +} + +int longest_common_subseq(int arr1[], int len1, + int arr2[], int len2) +{ + int p[16][16] = {}; + int i, j; + i = 1; + while (i <= len1) { + j = 1; + while (j <= len2) { + if (arr1[i - 1] == arr2[j - 1]) { + p[i][j] = p[i - 1][j - 1] + 1; + } else { + p[i][j] = MAX(p[i - 1][j], p[i][j - 1]); + } + j = j + 1; + } + i = i + 1; + } + return p[len1][len2]; +} + +int main() +{ + int A[15] = {8, 7, 4, 1, 2, 7, 0, 1, 9, 3, 4, 8, 3, 7, 0}; + int B[13] = {3, 9, 7, 1, 4, 2, 4, 3, 6, 8, 0, 1, 5}; + int An, Bn; + + putint(max_sum_nonadjacent(A, 15)); + putch(10); + + putint(longest_common_subseq(A, 15, B, 13)); + putch(10); + return 0; +} diff --git a/sysy_sets/78_side_effect.out b/sysy_sets/78_side_effect.out new file mode 100755 index 0000000..6d00d1a --- /dev/null +++ b/sysy_sets/78_side_effect.out @@ -0,0 +1,11 @@ +1 +4 2 +5 +8 4 +9 +12 8 +13 +16 16 +24 16 +29 16 +29 diff --git a/sysy_sets/78_side_effect.sy b/sysy_sets/78_side_effect.sy new file mode 100755 index 0000000..064b67e --- /dev/null +++ b/sysy_sets/78_side_effect.sy @@ -0,0 +1,29 @@ + +int a = -1, b = 1; + +int inc_a() +{ + int b = a; + b = b + 1; + a = b; + return a; +} + +int main() +{ + int k = 5; + while (k >= 0) { + if (inc_a() && inc_a() && inc_a()) { + putint(a); putch(32); putint(b); putch(10); + } + if (inc_a() < 14 || inc_a() && inc_a() - inc_a() + 1) { + putint(a); putch(10); + b = b * 2; + } else { + inc_a(); + } + k = k - 1; + } + putint(a); putch(32); putint(b); putch(10); + return a; +} diff --git a/sysy_sets/79_var_name.out b/sysy_sets/79_var_name.out new file mode 100755 index 0000000..8fab41c --- /dev/null +++ b/sysy_sets/79_var_name.out @@ -0,0 +1,19 @@ +3 +5 +8 +13 +21 +34 +55 +89 +144 +233 +377 +610 +987 +1597 +2584 +4181 +6765 +10946 +236 diff --git a/sysy_sets/79_var_name.sy b/sysy_sets/79_var_name.sy new file mode 100755 index 0000000..ca736fe --- /dev/null +++ b/sysy_sets/79_var_name.sy @@ -0,0 +1,14 @@ +int main() { + int xU4UVdo6fPho5bRhUTjrlIMjqIY_evCyLJf0suh6fNNJ_3DxUYEO_xR1xkH9B68yOd4nSYbkstCnMA1BvxzZHFcKgYsWCq9M6sWFj2hbYtXZAMA2V8pUya5kbMgjwVwR_IKh_EeyZ5EU504YyCm79GrBpe7NMhLcqK5b41z3SzpL6eQTdwdgiZLmh_BbdR_2e0ZcLGxpg0kD_SiCYiQWzh5ekfalc_qYy9ohDjYcW4XpZtkKT0LaIwpKT_eexlt3zRaWJlQTLKmDCqe83zBQAyZx9y79siWba8uMlkcoHe7YzKgeb2Lb44q6WW_vA7Kr9_c_I0LjpZWr2nyAcoFo9aOgYD4DikZLLO3GOQnLPymmJWZGewbfJOKcABxkHBbsjYup399BZw8fM62exxL6Os5P6r8dQxQnUAghxk5yVAElumTAW3cKIKf603d1W9zymy8I006tqdZnh2sUZjqZhYn1ljJCZyFbV6Lnp6IUAuM8pm1v2BE_iBujx7lhYKEvlNGPXjkoQjQXhMudJymkqc7H3mC_695Be7Dzlc_jnHycVoDXb4EczmxL2_UqouAWiUjUCG2hWi3t4QaOucBuNtIPw0nquTOLf5rLgbzuVbRfeTzymEnU08sFsRsach7SVQKOenEZ1N6kTBQFE5SZtqb7KGPp9Who2UvLK2fOKx8CQKNv6_Lc5NXh2p8n4Ob8lqo28dyadcRKyElXXvbl0JVfL9hDNy8S1yrJ5dg3wkEW2Xay5l0rE52vwJAbFxnfJXbAUkEBxeNifGgRB872UPpJ040uyvQAuhHXnakBM_3GjgFBcjAZzr_UJ1c3PglWVrFsLB4fID5bt2SQfC9zL2igpbtoxLeNf8QeUO_faaxtzVXWw015a1xytmdBXlfHIz3zBiOepkTKe8JD2S3xI3aBva2SE6J3Cx7QZgg5lLQ9Va9EONhhN4PLzvmj9uEQsxph6Bb0dhR8l65gFMTQM0zY8Ep1kj15kHfwTtjgp_qYcjjMguuFQxOP_Wuhw8tyRfYFDCaXhacEEXwA3Gp7JaXyLpmlZehZXTaO4w6xKYDyrpkycIiZBvyS6fxEqqzEybbmloWe5atTihpsXm9d6j0iyUP56maXEvx7OaOERJRjyTdx0Q2gdU92GE5Y1vyuc1GNj7gTmL84xjHcNQOiC8Blhf3J77ykaAhFYeWAp0W1TtVz = 2; + const int Cy92k8jOyGwpymrp_aZeu_vYwQPeRGHYo0nKXgxMsU3ALykomjoy0v7PrBR5MLWuTcPITZzLajYN3kAhROsMQ6uUe3NqQ6QJyFKvM2G1h6mT3QX9DYbJQsDjb_qKv7vEp6fZLUYJbP4BQnFuisvKlzY8Ym0f_IYchIbJQCvl5R0X3cujCWAWQmNXr8sWoyCtt8ghUridaVa8TcycXdrhLOXI4akvL4wY1B3BCAX4nTZsUGemmDbrjvz_XQ37Hw5lRNDM3AuNOb_oeTlLhRcIjoby7T1ozDgHQbUJFDKlD7D999ynqfEwOeJ1UTkX0elvwrn_Cem72IEwj0Kx_bCapCVe5JSCtVSKmoHhm0wlescYbATn21EnuIjiP_bVvzEvjKY9d7azInHGIwWjZJW_I8EgXj0rP9adIEZxSMJ6BLnuegBp71xWiZCJh_s4efmZUatbxHChtdHkY_VnLFku8X29hgVTjgPdTqjbP2Jcu2bV58lnZIt5wQk3rqeTInqkxNW4OvSbvo6np8PVtL0zjbJ5Sx2oSU1KcQTAG4Dgx14Eb8zGbDvs19ErvuUl48YOguAP2tJhbWBZ5Zv7FSg5V6BsF0ABLFmcT1LFgbgI0af8OK8eOrCzbQgG9SLnx9UTJx3_fCGpFOe5TtAqRvc4tqQglgYgfbGUpRT8X3yGln8jnUt6uR2Xgacd0JfjQg8CWLBihfD9JlE2hPUyoNzhaLmiZleiA4dg1I1q_5ugfO5PyfWwEVVwyTAlpaza1fOCAUCJW5Fy7g_fHFBfDNdUf98CJRmULkQ_qKCBxqVTV1JYDHm1vkKFt9qzr9sGxZWyLhQwTaBt2X_diibJJRHPEHGqcyla_O5MOy5VOu5tvpkw3V9Nn0UwUBzWEa32i2ekbzyGHjwsjoCm9q1IRDsunPKOgXpLmo21aUPPjpKH0nwKJWSfOTpa03CYMBjAZAxxLXNyH2wuTPt0ievT3BLmixYFifby5cqUHHZx7oaK6PnfHMoTh8PIF7KUQY2lkO3zgr9TnRNKtra_BbFArmWlWpvBVBBGuXnKuhJXSWRdARZi00QIMeApsc9hPXeV0OT9UiauD3mgxKTvWieLmXXg0ccoUyTkghCWRbA_SVbTEwHvmX8M_987cngFjVGdz7jYuWcTprOvoYc5qzNK8HZnP0iKHka2ysn6qvr4sheXnyybWMTdrMH6ej26BhzU2bHDgLZISeWIdu_mIQIKmgPNY7A6LujG1lp2K86YJ57RGFyTy5lPyV3yTRc3b5MEFMExLrqSx3m_vSNy1jr73sw6qU4wsBDTdhLvfqtR3FfKhcIdYNhz6BzzF50J42BSKYvk5x4oMhs7OSzPwPdMtEDt1BEkciRTt5LZgGBWYTsWAdXV3gbLKz0y2mOked_wgPwcu7dIuid2p1a0pq5SyV0aSYs13abh_ddAoNTiB7ZTwL3mw05WISorBytfJexyq0534kbAnp5DQwnGiAuM5GMVdE0mAnMr = 20; + int VLDTJUr0eYj3UiHhVWtQqVrqunxn8GIY2SPSCOKZw1azce1XN6Oqaz7crOokQxd0Jl_HNREMFQUaJQeHFmH5vE_4dX1cLiR7f9h64RWN1G3M1mKM7Y7FB1LheRSAHJA08GrqaVlh7NN05M3MGbywOWe5g91MEJX8AeOgM9Ja2XqNDj_cm1adEFa8e30NudvaPNpxFOC2C66LKK8i5xA8HVJgwFZWtYKEthyhLGYDShqNOShWyq14gC7EdfD4gR1dhvtMQDUbiGDc7G4WrjBJNb0zS0L8ALJ8CHKer7t657HqogSAcWFx2TBiQdtSP8jYK3tsS6_IefxvEGLTInAvZk5pvYhNVCDh6o8rHvfK3D_BEeFOIIsh0C_cUEX2RAsgwIMHkUbt3PbBXDp8_RuJr98J9y7eicGQLMpnpaNRz_W4vDanyNCy8SwZQij6CeJYhK9Z5AjUlta4VJTHlKy40vp3kAL9pWllUHbtAF_KsoETwLz0B7QQ5RN9b6DK2JkFFhsnRlmVrgXP_dsJib9gf_3_soE4nRVxmpm_liH19vUvlTxn3buGVkrZNsE7tSkwUiA1bBv9nMh3k6blOh6133Ym6WHqEh2nFO0wCtkd1PlgYW2_9TVzXMpwSEOi0NGp_LK6FqNiSZtHV2GEENDd15YV4CbryZLfM0QOY66Gi3gT_tRhAM3J6gSBHKN1ae9L1ucoWEQhUuYg2RcFwH3TR1J9MefSP7d7IEIbwm67h7al2_gOFIWKBt3rajglu0uTdDvmLfHd6SY6_dV2zMw8GFrAdlzE8i9YRCkJIBX3GZCmg_DsP09NVwBvRGs5znxMs47KvW8ipgOddYBylDm0eWNiSCL7NucfP6bDig9FxbLuoaRXJnWTDXEXb9OZS7CxbSn0Aph_cBLCN5_TNV73C9Hvz_6KTW9a34u1RW0Eesra9htMiKKycfHXUOe9QFhObXLBiCTSebAXH6O3Vv9C7_NLdPzSAk12YB3Vvr99sS2_rum0coC33LqNPUu_NXwKqo76sHr30xmOp7ASvq5R2AMxqzT_lKazOesV3Gu4cGWWIqWpN0kuem0xAxxKoBAnfmZZmyHlIckPpTAqMx9AZTUjiyZhuarAcfi3daF5FB3gJqZWH7XzcepCyrWwP_B_7PxaMzrI8yxhM2Ll2QYplWPApZ6Lxu7P5Q2GmM7G81pRrqFAYKMR_Licfh5OElDfR6W8RnFyIyzzdU8plHryg6RmKKusbR8gvNfYtne4JYeRHvEq623V87mCS8g6oPV1SYbSeDjfRir8QIvehNkvc2peAAtAJcBfLezojs8xTzGImP3BJLl9lHBbl8Ugb62gCbviGUaFMHhPBo9sFoLEPlG1De_gNmgWnK3Zt2hNKNqWuniLGWRgAS9jX6d7hDh6KSkVIsWaFxdt1XMjnqL1SRSBQiY9hnJkzD5XWG3oSWqUUUWCeq3kyvSdZrLRZHwsCsD027R2Xmsfekwxq_1S_09ug96n68v36Dbu6wZJr3cd4LfTPA6PbfSR_3m3DZyfPaPF_xM3mX6p7jg9GVfRtHCY8t_esPiazgDyjq_67vDqFuTOi8RAPPUKTWCsxI_XzgsBOvzQlxdIYhMF0d3Dve9iJzH7556mrXhGhFPFasFOrMjWZ6gyMpu9NuuEmrnDWcAV9uqJ6lLhTP5doiZJB8sei3RcNnQRHty4MlVKlVNasXYAtNNfPoh8zXM29wWtC9XReAxBSNaSDzqwVQU0PhfScQQwq4y04ait8KaAyuPKxmVuTcbQlWFfOr96d9umCj8A_XFmsF6mliW0FukpoTSCARZ3SG2aZmYVzPj3hTNl0EN1UDw7OMTLHM1nwbgc9I3d2r8SbLoGlbEk3nKrOv_kwYjgnyIwfiwaGd4igaLsk1cA1NAhJHsgH79ZA83wgEaxJ0iOfMKZ1QtBoIsxsecoER8HnjlvUYEfehifkE17w_OrsFCzdKgkQxe8BClbywbfbacJx86aWsSC[Cy92k8jOyGwpymrp_aZeu_vYwQPeRGHYo0nKXgxMsU3ALykomjoy0v7PrBR5MLWuTcPITZzLajYN3kAhROsMQ6uUe3NqQ6QJyFKvM2G1h6mT3QX9DYbJQsDjb_qKv7vEp6fZLUYJbP4BQnFuisvKlzY8Ym0f_IYchIbJQCvl5R0X3cujCWAWQmNXr8sWoyCtt8ghUridaVa8TcycXdrhLOXI4akvL4wY1B3BCAX4nTZsUGemmDbrjvz_XQ37Hw5lRNDM3AuNOb_oeTlLhRcIjoby7T1ozDgHQbUJFDKlD7D999ynqfEwOeJ1UTkX0elvwrn_Cem72IEwj0Kx_bCapCVe5JSCtVSKmoHhm0wlescYbATn21EnuIjiP_bVvzEvjKY9d7azInHGIwWjZJW_I8EgXj0rP9adIEZxSMJ6BLnuegBp71xWiZCJh_s4efmZUatbxHChtdHkY_VnLFku8X29hgVTjgPdTqjbP2Jcu2bV58lnZIt5wQk3rqeTInqkxNW4OvSbvo6np8PVtL0zjbJ5Sx2oSU1KcQTAG4Dgx14Eb8zGbDvs19ErvuUl48YOguAP2tJhbWBZ5Zv7FSg5V6BsF0ABLFmcT1LFgbgI0af8OK8eOrCzbQgG9SLnx9UTJx3_fCGpFOe5TtAqRvc4tqQglgYgfbGUpRT8X3yGln8jnUt6uR2Xgacd0JfjQg8CWLBihfD9JlE2hPUyoNzhaLmiZleiA4dg1I1q_5ugfO5PyfWwEVVwyTAlpaza1fOCAUCJW5Fy7g_fHFBfDNdUf98CJRmULkQ_qKCBxqVTV1JYDHm1vkKFt9qzr9sGxZWyLhQwTaBt2X_diibJJRHPEHGqcyla_O5MOy5VOu5tvpkw3V9Nn0UwUBzWEa32i2ekbzyGHjwsjoCm9q1IRDsunPKOgXpLmo21aUPPjpKH0nwKJWSfOTpa03CYMBjAZAxxLXNyH2wuTPt0ievT3BLmixYFifby5cqUHHZx7oaK6PnfHMoTh8PIF7KUQY2lkO3zgr9TnRNKtra_BbFArmWlWpvBVBBGuXnKuhJXSWRdARZi00QIMeApsc9hPXeV0OT9UiauD3mgxKTvWieLmXXg0ccoUyTkghCWRbA_SVbTEwHvmX8M_987cngFjVGdz7jYuWcTprOvoYc5qzNK8HZnP0iKHka2ysn6qvr4sheXnyybWMTdrMH6ej26BhzU2bHDgLZISeWIdu_mIQIKmgPNY7A6LujG1lp2K86YJ57RGFyTy5lPyV3yTRc3b5MEFMExLrqSx3m_vSNy1jr73sw6qU4wsBDTdhLvfqtR3FfKhcIdYNhz6BzzF50J42BSKYvk5x4oMhs7OSzPwPdMtEDt1BEkciRTt5LZgGBWYTsWAdXV3gbLKz0y2mOked_wgPwcu7dIuid2p1a0pq5SyV0aSYs13abh_ddAoNTiB7ZTwL3mw05WISorBytfJexyq0534kbAnp5DQwnGiAuM5GMVdE0mAnMr] = {1, 2}; + int V62vtYqjKr7vUHagX8crbD1Pj3RQqU188LgQk6im7Spz55lXZst8JZUowhVn7jz0bBXMsqvfWOKodXpT1Le6hFHrOb7UtEvFnsLGY9ZFBZjhjQKYHD0x0UoUVFYqNdSKrJLMPgBCvFrv0fiyCCZLqZptbJsZi9hCttHTcJVZ1ZkY63OoAyp5j02vip4mrw1SkZ5_06fVVOf4Cxyo2FIwGshCl2UN5A9lmUcdYhWZFN0LmC0eVdXx_fxzUpPwuaKAcHwBEZ0cAQXqfysxTiVb70SjMOnk89XrM2q34razAD6MiwPqVLzq05wRNWFAbxWc6Nv6YRj5uiZCwnyk4IrUDwcK_x1qH1Epkh5Kub8I0bRAISObdx9dy4VEbYDAxbLusLgTYjmrI_8t9jQ9WNe8zSnfmyOfvG8pWIzBXgzANur56sXGJ6DGIEFn1POWjp8WeJ9VwKxagoEXETh_4_BXKtibxg2CX5uhIWotBtmf3Z2qllM7FDf8rjLc0ib6NrDpXEArt1gKyw4BHszFGsn3ZE1ojKg1akhO2TQ1CS_rnTnWg_xzuCqVMeabyZOcrKXPKtLLN8VZweyipoSeobDTgb9XNPtN3k15D3gnzXajF3MDJQjMUCzqFuPXvDL1I7ZUZa4Iwn3eeRFbBiktbICOI8AKvmxVR0opvRUGikTcL4CpobsupXk_hnTqKdr3ZkKMy1iZ29TiIQ3k77TnpF9aBbnYOqHSeEEGp4XKGHPJvN6zvt5cdl48qq0Gis7lbuDABnaOWB6j7KYtSWSTcvgV_Xf8W6eGnLfaRvKbwzjo6XJ666ohjJTZ6zVyH3hjKNoQdG2jqj7q6dc2weSwBIuq60zR0OtAkho_7wZcEFWevTKzz4kcHHnqmRgwVXMovcVfwJoe2bnDxp2qyZ3ZZKwssaxwbcobq2R3QjLmyPdFyufpJKzwkavnMtvqahN_SXxvbRVrD5FvUm5SN9Gx8Rma36q2S2LYxOmbVtDa28yDYOxVkzwCF1dkj9azf60ebCoHdu1F8OnYl4R62eX8H3suqKcugZcwslPstms5GUcCcd53xTs1y7JucvmnbcsTFI4veCK4_yFg_G4CqyyrARVWsMxcYWjrmRKDY5tpUlySttXqwUt2NEql371PGNmX5qC972ZjKR2LiCwccUZfb6RkptSAaGqDfWaLcDUUaJ6zqPIKzZNVXKinBmO2lO2M_k1ppG8NGbGZvy_Op8jybGIc_B9LmcGre5k9Nd0KZZRqD7X6QFVHhkNNjuKFYlx_a3vWTtmX3SrGVuQCMJEsgbqla8TS3lfkyhnjl3JVtr1LlGsDvMJAoubwHxxJ86Tv9L6k5c6K82CMeYDAXaMNh9KjqEAGTUHe6w5daraYhFYE3PLs9K0Tl7PCHyAoQutsdM2O0Sts_leOLsignSl9k1_nl8Z5LICcY11qnBusAfntTlJhH6b3TfVrks8_pf0H1Tpbj2vyqglle5oBCdeSOUJfrW9RmCJdOpvEIttyciMOEExGrMR4uXrl4F6a7VzPsFuRhi4sNib1_EDOKATGy1JQWPaPsepXwltnW_EDT5eKMGoagdkFiRPn_iDpu0ArPE1MRz5JYXPUyLQL9TuJUJWO5VvnqTQz19bwix0Z5XTFhmxGytpqJgh7TNzd_G_VXVr5N_gtFr7jmxZ4zOBOFNPytdNCw2fYUyybUkFPU43fam7IATF28q2xNwcpP95S5Mf7W4XD2sxLy5posJQqZzv60UEoPgLjUkzXZtovAT7zUibCC9LvXAwuIMaOolWRGNCLZUrSzm_yTfmEZXwUlPd0g76KaL1C6zyjXBb0DKhqcGqKBie4J3TyRv3j4wJfW4LGz0Gibv2jeJwYHfiUupWZNzG0rOtUkIYIdfZKmvwp9z9z7RlYrmxnVpgW_p2r1iloJbUoFa7yFBL0i701BLC8cy60YPgRf8nxdMSdeb34M34H7uZZFzGHfD_bb_FE08SRw_uPwSdtLMiwztlpB_9Z6X2CyqKB0rxfSSHE6k6kvByG2FqKipOMyDyAS2i7Tw3LwK6YWNVOhbVRx4gelY4g046RJsXBiXL5NTrpJL22F4zlc3o0KiSE = 0; + while (xU4UVdo6fPho5bRhUTjrlIMjqIY_evCyLJf0suh6fNNJ_3DxUYEO_xR1xkH9B68yOd4nSYbkstCnMA1BvxzZHFcKgYsWCq9M6sWFj2hbYtXZAMA2V8pUya5kbMgjwVwR_IKh_EeyZ5EU504YyCm79GrBpe7NMhLcqK5b41z3SzpL6eQTdwdgiZLmh_BbdR_2e0ZcLGxpg0kD_SiCYiQWzh5ekfalc_qYy9ohDjYcW4XpZtkKT0LaIwpKT_eexlt3zRaWJlQTLKmDCqe83zBQAyZx9y79siWba8uMlkcoHe7YzKgeb2Lb44q6WW_vA7Kr9_c_I0LjpZWr2nyAcoFo9aOgYD4DikZLLO3GOQnLPymmJWZGewbfJOKcABxkHBbsjYup399BZw8fM62exxL6Os5P6r8dQxQnUAghxk5yVAElumTAW3cKIKf603d1W9zymy8I006tqdZnh2sUZjqZhYn1ljJCZyFbV6Lnp6IUAuM8pm1v2BE_iBujx7lhYKEvlNGPXjkoQjQXhMudJymkqc7H3mC_695Be7Dzlc_jnHycVoDXb4EczmxL2_UqouAWiUjUCG2hWi3t4QaOucBuNtIPw0nquTOLf5rLgbzuVbRfeTzymEnU08sFsRsach7SVQKOenEZ1N6kTBQFE5SZtqb7KGPp9Who2UvLK2fOKx8CQKNv6_Lc5NXh2p8n4Ob8lqo28dyadcRKyElXXvbl0JVfL9hDNy8S1yrJ5dg3wkEW2Xay5l0rE52vwJAbFxnfJXbAUkEBxeNifGgRB872UPpJ040uyvQAuhHXnakBM_3GjgFBcjAZzr_UJ1c3PglWVrFsLB4fID5bt2SQfC9zL2igpbtoxLeNf8QeUO_faaxtzVXWw015a1xytmdBXlfHIz3zBiOepkTKe8JD2S3xI3aBva2SE6J3Cx7QZgg5lLQ9Va9EONhhN4PLzvmj9uEQsxph6Bb0dhR8l65gFMTQM0zY8Ep1kj15kHfwTtjgp_qYcjjMguuFQxOP_Wuhw8tyRfYFDCaXhacEEXwA3Gp7JaXyLpmlZehZXTaO4w6xKYDyrpkycIiZBvyS6fxEqqzEybbmloWe5atTihpsXm9d6j0iyUP56maXEvx7OaOERJRjyTdx0Q2gdU92GE5Y1vyuc1GNj7gTmL84xjHcNQOiC8Blhf3J77ykaAhFYeWAp0W1TtVz < Cy92k8jOyGwpymrp_aZeu_vYwQPeRGHYo0nKXgxMsU3ALykomjoy0v7PrBR5MLWuTcPITZzLajYN3kAhROsMQ6uUe3NqQ6QJyFKvM2G1h6mT3QX9DYbJQsDjb_qKv7vEp6fZLUYJbP4BQnFuisvKlzY8Ym0f_IYchIbJQCvl5R0X3cujCWAWQmNXr8sWoyCtt8ghUridaVa8TcycXdrhLOXI4akvL4wY1B3BCAX4nTZsUGemmDbrjvz_XQ37Hw5lRNDM3AuNOb_oeTlLhRcIjoby7T1ozDgHQbUJFDKlD7D999ynqfEwOeJ1UTkX0elvwrn_Cem72IEwj0Kx_bCapCVe5JSCtVSKmoHhm0wlescYbATn21EnuIjiP_bVvzEvjKY9d7azInHGIwWjZJW_I8EgXj0rP9adIEZxSMJ6BLnuegBp71xWiZCJh_s4efmZUatbxHChtdHkY_VnLFku8X29hgVTjgPdTqjbP2Jcu2bV58lnZIt5wQk3rqeTInqkxNW4OvSbvo6np8PVtL0zjbJ5Sx2oSU1KcQTAG4Dgx14Eb8zGbDvs19ErvuUl48YOguAP2tJhbWBZ5Zv7FSg5V6BsF0ABLFmcT1LFgbgI0af8OK8eOrCzbQgG9SLnx9UTJx3_fCGpFOe5TtAqRvc4tqQglgYgfbGUpRT8X3yGln8jnUt6uR2Xgacd0JfjQg8CWLBihfD9JlE2hPUyoNzhaLmiZleiA4dg1I1q_5ugfO5PyfWwEVVwyTAlpaza1fOCAUCJW5Fy7g_fHFBfDNdUf98CJRmULkQ_qKCBxqVTV1JYDHm1vkKFt9qzr9sGxZWyLhQwTaBt2X_diibJJRHPEHGqcyla_O5MOy5VOu5tvpkw3V9Nn0UwUBzWEa32i2ekbzyGHjwsjoCm9q1IRDsunPKOgXpLmo21aUPPjpKH0nwKJWSfOTpa03CYMBjAZAxxLXNyH2wuTPt0ievT3BLmixYFifby5cqUHHZx7oaK6PnfHMoTh8PIF7KUQY2lkO3zgr9TnRNKtra_BbFArmWlWpvBVBBGuXnKuhJXSWRdARZi00QIMeApsc9hPXeV0OT9UiauD3mgxKTvWieLmXXg0ccoUyTkghCWRbA_SVbTEwHvmX8M_987cngFjVGdz7jYuWcTprOvoYc5qzNK8HZnP0iKHka2ysn6qvr4sheXnyybWMTdrMH6ej26BhzU2bHDgLZISeWIdu_mIQIKmgPNY7A6LujG1lp2K86YJ57RGFyTy5lPyV3yTRc3b5MEFMExLrqSx3m_vSNy1jr73sw6qU4wsBDTdhLvfqtR3FfKhcIdYNhz6BzzF50J42BSKYvk5x4oMhs7OSzPwPdMtEDt1BEkciRTt5LZgGBWYTsWAdXV3gbLKz0y2mOked_wgPwcu7dIuid2p1a0pq5SyV0aSYs13abh_ddAoNTiB7ZTwL3mw05WISorBytfJexyq0534kbAnp5DQwnGiAuM5GMVdE0mAnMr) { + VLDTJUr0eYj3UiHhVWtQqVrqunxn8GIY2SPSCOKZw1azce1XN6Oqaz7crOokQxd0Jl_HNREMFQUaJQeHFmH5vE_4dX1cLiR7f9h64RWN1G3M1mKM7Y7FB1LheRSAHJA08GrqaVlh7NN05M3MGbywOWe5g91MEJX8AeOgM9Ja2XqNDj_cm1adEFa8e30NudvaPNpxFOC2C66LKK8i5xA8HVJgwFZWtYKEthyhLGYDShqNOShWyq14gC7EdfD4gR1dhvtMQDUbiGDc7G4WrjBJNb0zS0L8ALJ8CHKer7t657HqogSAcWFx2TBiQdtSP8jYK3tsS6_IefxvEGLTInAvZk5pvYhNVCDh6o8rHvfK3D_BEeFOIIsh0C_cUEX2RAsgwIMHkUbt3PbBXDp8_RuJr98J9y7eicGQLMpnpaNRz_W4vDanyNCy8SwZQij6CeJYhK9Z5AjUlta4VJTHlKy40vp3kAL9pWllUHbtAF_KsoETwLz0B7QQ5RN9b6DK2JkFFhsnRlmVrgXP_dsJib9gf_3_soE4nRVxmpm_liH19vUvlTxn3buGVkrZNsE7tSkwUiA1bBv9nMh3k6blOh6133Ym6WHqEh2nFO0wCtkd1PlgYW2_9TVzXMpwSEOi0NGp_LK6FqNiSZtHV2GEENDd15YV4CbryZLfM0QOY66Gi3gT_tRhAM3J6gSBHKN1ae9L1ucoWEQhUuYg2RcFwH3TR1J9MefSP7d7IEIbwm67h7al2_gOFIWKBt3rajglu0uTdDvmLfHd6SY6_dV2zMw8GFrAdlzE8i9YRCkJIBX3GZCmg_DsP09NVwBvRGs5znxMs47KvW8ipgOddYBylDm0eWNiSCL7NucfP6bDig9FxbLuoaRXJnWTDXEXb9OZS7CxbSn0Aph_cBLCN5_TNV73C9Hvz_6KTW9a34u1RW0Eesra9htMiKKycfHXUOe9QFhObXLBiCTSebAXH6O3Vv9C7_NLdPzSAk12YB3Vvr99sS2_rum0coC33LqNPUu_NXwKqo76sHr30xmOp7ASvq5R2AMxqzT_lKazOesV3Gu4cGWWIqWpN0kuem0xAxxKoBAnfmZZmyHlIckPpTAqMx9AZTUjiyZhuarAcfi3daF5FB3gJqZWH7XzcepCyrWwP_B_7PxaMzrI8yxhM2Ll2QYplWPApZ6Lxu7P5Q2GmM7G81pRrqFAYKMR_Licfh5OElDfR6W8RnFyIyzzdU8plHryg6RmKKusbR8gvNfYtne4JYeRHvEq623V87mCS8g6oPV1SYbSeDjfRir8QIvehNkvc2peAAtAJcBfLezojs8xTzGImP3BJLl9lHBbl8Ugb62gCbviGUaFMHhPBo9sFoLEPlG1De_gNmgWnK3Zt2hNKNqWuniLGWRgAS9jX6d7hDh6KSkVIsWaFxdt1XMjnqL1SRSBQiY9hnJkzD5XWG3oSWqUUUWCeq3kyvSdZrLRZHwsCsD027R2Xmsfekwxq_1S_09ug96n68v36Dbu6wZJr3cd4LfTPA6PbfSR_3m3DZyfPaPF_xM3mX6p7jg9GVfRtHCY8t_esPiazgDyjq_67vDqFuTOi8RAPPUKTWCsxI_XzgsBOvzQlxdIYhMF0d3Dve9iJzH7556mrXhGhFPFasFOrMjWZ6gyMpu9NuuEmrnDWcAV9uqJ6lLhTP5doiZJB8sei3RcNnQRHty4MlVKlVNasXYAtNNfPoh8zXM29wWtC9XReAxBSNaSDzqwVQU0PhfScQQwq4y04ait8KaAyuPKxmVuTcbQlWFfOr96d9umCj8A_XFmsF6mliW0FukpoTSCARZ3SG2aZmYVzPj3hTNl0EN1UDw7OMTLHM1nwbgc9I3d2r8SbLoGlbEk3nKrOv_kwYjgnyIwfiwaGd4igaLsk1cA1NAhJHsgH79ZA83wgEaxJ0iOfMKZ1QtBoIsxsecoER8HnjlvUYEfehifkE17w_OrsFCzdKgkQxe8BClbywbfbacJx86aWsSC[xU4UVdo6fPho5bRhUTjrlIMjqIY_evCyLJf0suh6fNNJ_3DxUYEO_xR1xkH9B68yOd4nSYbkstCnMA1BvxzZHFcKgYsWCq9M6sWFj2hbYtXZAMA2V8pUya5kbMgjwVwR_IKh_EeyZ5EU504YyCm79GrBpe7NMhLcqK5b41z3SzpL6eQTdwdgiZLmh_BbdR_2e0ZcLGxpg0kD_SiCYiQWzh5ekfalc_qYy9ohDjYcW4XpZtkKT0LaIwpKT_eexlt3zRaWJlQTLKmDCqe83zBQAyZx9y79siWba8uMlkcoHe7YzKgeb2Lb44q6WW_vA7Kr9_c_I0LjpZWr2nyAcoFo9aOgYD4DikZLLO3GOQnLPymmJWZGewbfJOKcABxkHBbsjYup399BZw8fM62exxL6Os5P6r8dQxQnUAghxk5yVAElumTAW3cKIKf603d1W9zymy8I006tqdZnh2sUZjqZhYn1ljJCZyFbV6Lnp6IUAuM8pm1v2BE_iBujx7lhYKEvlNGPXjkoQjQXhMudJymkqc7H3mC_695Be7Dzlc_jnHycVoDXb4EczmxL2_UqouAWiUjUCG2hWi3t4QaOucBuNtIPw0nquTOLf5rLgbzuVbRfeTzymEnU08sFsRsach7SVQKOenEZ1N6kTBQFE5SZtqb7KGPp9Who2UvLK2fOKx8CQKNv6_Lc5NXh2p8n4Ob8lqo28dyadcRKyElXXvbl0JVfL9hDNy8S1yrJ5dg3wkEW2Xay5l0rE52vwJAbFxnfJXbAUkEBxeNifGgRB872UPpJ040uyvQAuhHXnakBM_3GjgFBcjAZzr_UJ1c3PglWVrFsLB4fID5bt2SQfC9zL2igpbtoxLeNf8QeUO_faaxtzVXWw015a1xytmdBXlfHIz3zBiOepkTKe8JD2S3xI3aBva2SE6J3Cx7QZgg5lLQ9Va9EONhhN4PLzvmj9uEQsxph6Bb0dhR8l65gFMTQM0zY8Ep1kj15kHfwTtjgp_qYcjjMguuFQxOP_Wuhw8tyRfYFDCaXhacEEXwA3Gp7JaXyLpmlZehZXTaO4w6xKYDyrpkycIiZBvyS6fxEqqzEybbmloWe5atTihpsXm9d6j0iyUP56maXEvx7OaOERJRjyTdx0Q2gdU92GE5Y1vyuc1GNj7gTmL84xjHcNQOiC8Blhf3J77ykaAhFYeWAp0W1TtVz] = VLDTJUr0eYj3UiHhVWtQqVrqunxn8GIY2SPSCOKZw1azce1XN6Oqaz7crOokQxd0Jl_HNREMFQUaJQeHFmH5vE_4dX1cLiR7f9h64RWN1G3M1mKM7Y7FB1LheRSAHJA08GrqaVlh7NN05M3MGbywOWe5g91MEJX8AeOgM9Ja2XqNDj_cm1adEFa8e30NudvaPNpxFOC2C66LKK8i5xA8HVJgwFZWtYKEthyhLGYDShqNOShWyq14gC7EdfD4gR1dhvtMQDUbiGDc7G4WrjBJNb0zS0L8ALJ8CHKer7t657HqogSAcWFx2TBiQdtSP8jYK3tsS6_IefxvEGLTInAvZk5pvYhNVCDh6o8rHvfK3D_BEeFOIIsh0C_cUEX2RAsgwIMHkUbt3PbBXDp8_RuJr98J9y7eicGQLMpnpaNRz_W4vDanyNCy8SwZQij6CeJYhK9Z5AjUlta4VJTHlKy40vp3kAL9pWllUHbtAF_KsoETwLz0B7QQ5RN9b6DK2JkFFhsnRlmVrgXP_dsJib9gf_3_soE4nRVxmpm_liH19vUvlTxn3buGVkrZNsE7tSkwUiA1bBv9nMh3k6blOh6133Ym6WHqEh2nFO0wCtkd1PlgYW2_9TVzXMpwSEOi0NGp_LK6FqNiSZtHV2GEENDd15YV4CbryZLfM0QOY66Gi3gT_tRhAM3J6gSBHKN1ae9L1ucoWEQhUuYg2RcFwH3TR1J9MefSP7d7IEIbwm67h7al2_gOFIWKBt3rajglu0uTdDvmLfHd6SY6_dV2zMw8GFrAdlzE8i9YRCkJIBX3GZCmg_DsP09NVwBvRGs5znxMs47KvW8ipgOddYBylDm0eWNiSCL7NucfP6bDig9FxbLuoaRXJnWTDXEXb9OZS7CxbSn0Aph_cBLCN5_TNV73C9Hvz_6KTW9a34u1RW0Eesra9htMiKKycfHXUOe9QFhObXLBiCTSebAXH6O3Vv9C7_NLdPzSAk12YB3Vvr99sS2_rum0coC33LqNPUu_NXwKqo76sHr30xmOp7ASvq5R2AMxqzT_lKazOesV3Gu4cGWWIqWpN0kuem0xAxxKoBAnfmZZmyHlIckPpTAqMx9AZTUjiyZhuarAcfi3daF5FB3gJqZWH7XzcepCyrWwP_B_7PxaMzrI8yxhM2Ll2QYplWPApZ6Lxu7P5Q2GmM7G81pRrqFAYKMR_Licfh5OElDfR6W8RnFyIyzzdU8plHryg6RmKKusbR8gvNfYtne4JYeRHvEq623V87mCS8g6oPV1SYbSeDjfRir8QIvehNkvc2peAAtAJcBfLezojs8xTzGImP3BJLl9lHBbl8Ugb62gCbviGUaFMHhPBo9sFoLEPlG1De_gNmgWnK3Zt2hNKNqWuniLGWRgAS9jX6d7hDh6KSkVIsWaFxdt1XMjnqL1SRSBQiY9hnJkzD5XWG3oSWqUUUWCeq3kyvSdZrLRZHwsCsD027R2Xmsfekwxq_1S_09ug96n68v36Dbu6wZJr3cd4LfTPA6PbfSR_3m3DZyfPaPF_xM3mX6p7jg9GVfRtHCY8t_esPiazgDyjq_67vDqFuTOi8RAPPUKTWCsxI_XzgsBOvzQlxdIYhMF0d3Dve9iJzH7556mrXhGhFPFasFOrMjWZ6gyMpu9NuuEmrnDWcAV9uqJ6lLhTP5doiZJB8sei3RcNnQRHty4MlVKlVNasXYAtNNfPoh8zXM29wWtC9XReAxBSNaSDzqwVQU0PhfScQQwq4y04ait8KaAyuPKxmVuTcbQlWFfOr96d9umCj8A_XFmsF6mliW0FukpoTSCARZ3SG2aZmYVzPj3hTNl0EN1UDw7OMTLHM1nwbgc9I3d2r8SbLoGlbEk3nKrOv_kwYjgnyIwfiwaGd4igaLsk1cA1NAhJHsgH79ZA83wgEaxJ0iOfMKZ1QtBoIsxsecoER8HnjlvUYEfehifkE17w_OrsFCzdKgkQxe8BClbywbfbacJx86aWsSC[xU4UVdo6fPho5bRhUTjrlIMjqIY_evCyLJf0suh6fNNJ_3DxUYEO_xR1xkH9B68yOd4nSYbkstCnMA1BvxzZHFcKgYsWCq9M6sWFj2hbYtXZAMA2V8pUya5kbMgjwVwR_IKh_EeyZ5EU504YyCm79GrBpe7NMhLcqK5b41z3SzpL6eQTdwdgiZLmh_BbdR_2e0ZcLGxpg0kD_SiCYiQWzh5ekfalc_qYy9ohDjYcW4XpZtkKT0LaIwpKT_eexlt3zRaWJlQTLKmDCqe83zBQAyZx9y79siWba8uMlkcoHe7YzKgeb2Lb44q6WW_vA7Kr9_c_I0LjpZWr2nyAcoFo9aOgYD4DikZLLO3GOQnLPymmJWZGewbfJOKcABxkHBbsjYup399BZw8fM62exxL6Os5P6r8dQxQnUAghxk5yVAElumTAW3cKIKf603d1W9zymy8I006tqdZnh2sUZjqZhYn1ljJCZyFbV6Lnp6IUAuM8pm1v2BE_iBujx7lhYKEvlNGPXjkoQjQXhMudJymkqc7H3mC_695Be7Dzlc_jnHycVoDXb4EczmxL2_UqouAWiUjUCG2hWi3t4QaOucBuNtIPw0nquTOLf5rLgbzuVbRfeTzymEnU08sFsRsach7SVQKOenEZ1N6kTBQFE5SZtqb7KGPp9Who2UvLK2fOKx8CQKNv6_Lc5NXh2p8n4Ob8lqo28dyadcRKyElXXvbl0JVfL9hDNy8S1yrJ5dg3wkEW2Xay5l0rE52vwJAbFxnfJXbAUkEBxeNifGgRB872UPpJ040uyvQAuhHXnakBM_3GjgFBcjAZzr_UJ1c3PglWVrFsLB4fID5bt2SQfC9zL2igpbtoxLeNf8QeUO_faaxtzVXWw015a1xytmdBXlfHIz3zBiOepkTKe8JD2S3xI3aBva2SE6J3Cx7QZgg5lLQ9Va9EONhhN4PLzvmj9uEQsxph6Bb0dhR8l65gFMTQM0zY8Ep1kj15kHfwTtjgp_qYcjjMguuFQxOP_Wuhw8tyRfYFDCaXhacEEXwA3Gp7JaXyLpmlZehZXTaO4w6xKYDyrpkycIiZBvyS6fxEqqzEybbmloWe5atTihpsXm9d6j0iyUP56maXEvx7OaOERJRjyTdx0Q2gdU92GE5Y1vyuc1GNj7gTmL84xjHcNQOiC8Blhf3J77ykaAhFYeWAp0W1TtVz] + VLDTJUr0eYj3UiHhVWtQqVrqunxn8GIY2SPSCOKZw1azce1XN6Oqaz7crOokQxd0Jl_HNREMFQUaJQeHFmH5vE_4dX1cLiR7f9h64RWN1G3M1mKM7Y7FB1LheRSAHJA08GrqaVlh7NN05M3MGbywOWe5g91MEJX8AeOgM9Ja2XqNDj_cm1adEFa8e30NudvaPNpxFOC2C66LKK8i5xA8HVJgwFZWtYKEthyhLGYDShqNOShWyq14gC7EdfD4gR1dhvtMQDUbiGDc7G4WrjBJNb0zS0L8ALJ8CHKer7t657HqogSAcWFx2TBiQdtSP8jYK3tsS6_IefxvEGLTInAvZk5pvYhNVCDh6o8rHvfK3D_BEeFOIIsh0C_cUEX2RAsgwIMHkUbt3PbBXDp8_RuJr98J9y7eicGQLMpnpaNRz_W4vDanyNCy8SwZQij6CeJYhK9Z5AjUlta4VJTHlKy40vp3kAL9pWllUHbtAF_KsoETwLz0B7QQ5RN9b6DK2JkFFhsnRlmVrgXP_dsJib9gf_3_soE4nRVxmpm_liH19vUvlTxn3buGVkrZNsE7tSkwUiA1bBv9nMh3k6blOh6133Ym6WHqEh2nFO0wCtkd1PlgYW2_9TVzXMpwSEOi0NGp_LK6FqNiSZtHV2GEENDd15YV4CbryZLfM0QOY66Gi3gT_tRhAM3J6gSBHKN1ae9L1ucoWEQhUuYg2RcFwH3TR1J9MefSP7d7IEIbwm67h7al2_gOFIWKBt3rajglu0uTdDvmLfHd6SY6_dV2zMw8GFrAdlzE8i9YRCkJIBX3GZCmg_DsP09NVwBvRGs5znxMs47KvW8ipgOddYBylDm0eWNiSCL7NucfP6bDig9FxbLuoaRXJnWTDXEXb9OZS7CxbSn0Aph_cBLCN5_TNV73C9Hvz_6KTW9a34u1RW0Eesra9htMiKKycfHXUOe9QFhObXLBiCTSebAXH6O3Vv9C7_NLdPzSAk12YB3Vvr99sS2_rum0coC33LqNPUu_NXwKqo76sHr30xmOp7ASvq5R2AMxqzT_lKazOesV3Gu4cGWWIqWpN0kuem0xAxxKoBAnfmZZmyHlIckPpTAqMx9AZTUjiyZhuarAcfi3daF5FB3gJqZWH7XzcepCyrWwP_B_7PxaMzrI8yxhM2Ll2QYplWPApZ6Lxu7P5Q2GmM7G81pRrqFAYKMR_Licfh5OElDfR6W8RnFyIyzzdU8plHryg6RmKKusbR8gvNfYtne4JYeRHvEq623V87mCS8g6oPV1SYbSeDjfRir8QIvehNkvc2peAAtAJcBfLezojs8xTzGImP3BJLl9lHBbl8Ugb62gCbviGUaFMHhPBo9sFoLEPlG1De_gNmgWnK3Zt2hNKNqWuniLGWRgAS9jX6d7hDh6KSkVIsWaFxdt1XMjnqL1SRSBQiY9hnJkzD5XWG3oSWqUUUWCeq3kyvSdZrLRZHwsCsD027R2Xmsfekwxq_1S_09ug96n68v36Dbu6wZJr3cd4LfTPA6PbfSR_3m3DZyfPaPF_xM3mX6p7jg9GVfRtHCY8t_esPiazgDyjq_67vDqFuTOi8RAPPUKTWCsxI_XzgsBOvzQlxdIYhMF0d3Dve9iJzH7556mrXhGhFPFasFOrMjWZ6gyMpu9NuuEmrnDWcAV9uqJ6lLhTP5doiZJB8sei3RcNnQRHty4MlVKlVNasXYAtNNfPoh8zXM29wWtC9XReAxBSNaSDzqwVQU0PhfScQQwq4y04ait8KaAyuPKxmVuTcbQlWFfOr96d9umCj8A_XFmsF6mliW0FukpoTSCARZ3SG2aZmYVzPj3hTNl0EN1UDw7OMTLHM1nwbgc9I3d2r8SbLoGlbEk3nKrOv_kwYjgnyIwfiwaGd4igaLsk1cA1NAhJHsgH79ZA83wgEaxJ0iOfMKZ1QtBoIsxsecoER8HnjlvUYEfehifkE17w_OrsFCzdKgkQxe8BClbywbfbacJx86aWsSC[xU4UVdo6fPho5bRhUTjrlIMjqIY_evCyLJf0suh6fNNJ_3DxUYEO_xR1xkH9B68yOd4nSYbkstCnMA1BvxzZHFcKgYsWCq9M6sWFj2hbYtXZAMA2V8pUya5kbMgjwVwR_IKh_EeyZ5EU504YyCm79GrBpe7NMhLcqK5b41z3SzpL6eQTdwdgiZLmh_BbdR_2e0ZcLGxpg0kD_SiCYiQWzh5ekfalc_qYy9ohDjYcW4XpZtkKT0LaIwpKT_eexlt3zRaWJlQTLKmDCqe83zBQAyZx9y79siWba8uMlkcoHe7YzKgeb2Lb44q6WW_vA7Kr9_c_I0LjpZWr2nyAcoFo9aOgYD4DikZLLO3GOQnLPymmJWZGewbfJOKcABxkHBbsjYup399BZw8fM62exxL6Os5P6r8dQxQnUAghxk5yVAElumTAW3cKIKf603d1W9zymy8I006tqdZnh2sUZjqZhYn1ljJCZyFbV6Lnp6IUAuM8pm1v2BE_iBujx7lhYKEvlNGPXjkoQjQXhMudJymkqc7H3mC_695Be7Dzlc_jnHycVoDXb4EczmxL2_UqouAWiUjUCG2hWi3t4QaOucBuNtIPw0nquTOLf5rLgbzuVbRfeTzymEnU08sFsRsach7SVQKOenEZ1N6kTBQFE5SZtqb7KGPp9Who2UvLK2fOKx8CQKNv6_Lc5NXh2p8n4Ob8lqo28dyadcRKyElXXvbl0JVfL9hDNy8S1yrJ5dg3wkEW2Xay5l0rE52vwJAbFxnfJXbAUkEBxeNifGgRB872UPpJ040uyvQAuhHXnakBM_3GjgFBcjAZzr_UJ1c3PglWVrFsLB4fID5bt2SQfC9zL2igpbtoxLeNf8QeUO_faaxtzVXWw015a1xytmdBXlfHIz3zBiOepkTKe8JD2S3xI3aBva2SE6J3Cx7QZgg5lLQ9Va9EONhhN4PLzvmj9uEQsxph6Bb0dhR8l65gFMTQM0zY8Ep1kj15kHfwTtjgp_qYcjjMguuFQxOP_Wuhw8tyRfYFDCaXhacEEXwA3Gp7JaXyLpmlZehZXTaO4w6xKYDyrpkycIiZBvyS6fxEqqzEybbmloWe5atTihpsXm9d6j0iyUP56maXEvx7OaOERJRjyTdx0Q2gdU92GE5Y1vyuc1GNj7gTmL84xjHcNQOiC8Blhf3J77ykaAhFYeWAp0W1TtVz - 1] + VLDTJUr0eYj3UiHhVWtQqVrqunxn8GIY2SPSCOKZw1azce1XN6Oqaz7crOokQxd0Jl_HNREMFQUaJQeHFmH5vE_4dX1cLiR7f9h64RWN1G3M1mKM7Y7FB1LheRSAHJA08GrqaVlh7NN05M3MGbywOWe5g91MEJX8AeOgM9Ja2XqNDj_cm1adEFa8e30NudvaPNpxFOC2C66LKK8i5xA8HVJgwFZWtYKEthyhLGYDShqNOShWyq14gC7EdfD4gR1dhvtMQDUbiGDc7G4WrjBJNb0zS0L8ALJ8CHKer7t657HqogSAcWFx2TBiQdtSP8jYK3tsS6_IefxvEGLTInAvZk5pvYhNVCDh6o8rHvfK3D_BEeFOIIsh0C_cUEX2RAsgwIMHkUbt3PbBXDp8_RuJr98J9y7eicGQLMpnpaNRz_W4vDanyNCy8SwZQij6CeJYhK9Z5AjUlta4VJTHlKy40vp3kAL9pWllUHbtAF_KsoETwLz0B7QQ5RN9b6DK2JkFFhsnRlmVrgXP_dsJib9gf_3_soE4nRVxmpm_liH19vUvlTxn3buGVkrZNsE7tSkwUiA1bBv9nMh3k6blOh6133Ym6WHqEh2nFO0wCtkd1PlgYW2_9TVzXMpwSEOi0NGp_LK6FqNiSZtHV2GEENDd15YV4CbryZLfM0QOY66Gi3gT_tRhAM3J6gSBHKN1ae9L1ucoWEQhUuYg2RcFwH3TR1J9MefSP7d7IEIbwm67h7al2_gOFIWKBt3rajglu0uTdDvmLfHd6SY6_dV2zMw8GFrAdlzE8i9YRCkJIBX3GZCmg_DsP09NVwBvRGs5znxMs47KvW8ipgOddYBylDm0eWNiSCL7NucfP6bDig9FxbLuoaRXJnWTDXEXb9OZS7CxbSn0Aph_cBLCN5_TNV73C9Hvz_6KTW9a34u1RW0Eesra9htMiKKycfHXUOe9QFhObXLBiCTSebAXH6O3Vv9C7_NLdPzSAk12YB3Vvr99sS2_rum0coC33LqNPUu_NXwKqo76sHr30xmOp7ASvq5R2AMxqzT_lKazOesV3Gu4cGWWIqWpN0kuem0xAxxKoBAnfmZZmyHlIckPpTAqMx9AZTUjiyZhuarAcfi3daF5FB3gJqZWH7XzcepCyrWwP_B_7PxaMzrI8yxhM2Ll2QYplWPApZ6Lxu7P5Q2GmM7G81pRrqFAYKMR_Licfh5OElDfR6W8RnFyIyzzdU8plHryg6RmKKusbR8gvNfYtne4JYeRHvEq623V87mCS8g6oPV1SYbSeDjfRir8QIvehNkvc2peAAtAJcBfLezojs8xTzGImP3BJLl9lHBbl8Ugb62gCbviGUaFMHhPBo9sFoLEPlG1De_gNmgWnK3Zt2hNKNqWuniLGWRgAS9jX6d7hDh6KSkVIsWaFxdt1XMjnqL1SRSBQiY9hnJkzD5XWG3oSWqUUUWCeq3kyvSdZrLRZHwsCsD027R2Xmsfekwxq_1S_09ug96n68v36Dbu6wZJr3cd4LfTPA6PbfSR_3m3DZyfPaPF_xM3mX6p7jg9GVfRtHCY8t_esPiazgDyjq_67vDqFuTOi8RAPPUKTWCsxI_XzgsBOvzQlxdIYhMF0d3Dve9iJzH7556mrXhGhFPFasFOrMjWZ6gyMpu9NuuEmrnDWcAV9uqJ6lLhTP5doiZJB8sei3RcNnQRHty4MlVKlVNasXYAtNNfPoh8zXM29wWtC9XReAxBSNaSDzqwVQU0PhfScQQwq4y04ait8KaAyuPKxmVuTcbQlWFfOr96d9umCj8A_XFmsF6mliW0FukpoTSCARZ3SG2aZmYVzPj3hTNl0EN1UDw7OMTLHM1nwbgc9I3d2r8SbLoGlbEk3nKrOv_kwYjgnyIwfiwaGd4igaLsk1cA1NAhJHsgH79ZA83wgEaxJ0iOfMKZ1QtBoIsxsecoER8HnjlvUYEfehifkE17w_OrsFCzdKgkQxe8BClbywbfbacJx86aWsSC[xU4UVdo6fPho5bRhUTjrlIMjqIY_evCyLJf0suh6fNNJ_3DxUYEO_xR1xkH9B68yOd4nSYbkstCnMA1BvxzZHFcKgYsWCq9M6sWFj2hbYtXZAMA2V8pUya5kbMgjwVwR_IKh_EeyZ5EU504YyCm79GrBpe7NMhLcqK5b41z3SzpL6eQTdwdgiZLmh_BbdR_2e0ZcLGxpg0kD_SiCYiQWzh5ekfalc_qYy9ohDjYcW4XpZtkKT0LaIwpKT_eexlt3zRaWJlQTLKmDCqe83zBQAyZx9y79siWba8uMlkcoHe7YzKgeb2Lb44q6WW_vA7Kr9_c_I0LjpZWr2nyAcoFo9aOgYD4DikZLLO3GOQnLPymmJWZGewbfJOKcABxkHBbsjYup399BZw8fM62exxL6Os5P6r8dQxQnUAghxk5yVAElumTAW3cKIKf603d1W9zymy8I006tqdZnh2sUZjqZhYn1ljJCZyFbV6Lnp6IUAuM8pm1v2BE_iBujx7lhYKEvlNGPXjkoQjQXhMudJymkqc7H3mC_695Be7Dzlc_jnHycVoDXb4EczmxL2_UqouAWiUjUCG2hWi3t4QaOucBuNtIPw0nquTOLf5rLgbzuVbRfeTzymEnU08sFsRsach7SVQKOenEZ1N6kTBQFE5SZtqb7KGPp9Who2UvLK2fOKx8CQKNv6_Lc5NXh2p8n4Ob8lqo28dyadcRKyElXXvbl0JVfL9hDNy8S1yrJ5dg3wkEW2Xay5l0rE52vwJAbFxnfJXbAUkEBxeNifGgRB872UPpJ040uyvQAuhHXnakBM_3GjgFBcjAZzr_UJ1c3PglWVrFsLB4fID5bt2SQfC9zL2igpbtoxLeNf8QeUO_faaxtzVXWw015a1xytmdBXlfHIz3zBiOepkTKe8JD2S3xI3aBva2SE6J3Cx7QZgg5lLQ9Va9EONhhN4PLzvmj9uEQsxph6Bb0dhR8l65gFMTQM0zY8Ep1kj15kHfwTtjgp_qYcjjMguuFQxOP_Wuhw8tyRfYFDCaXhacEEXwA3Gp7JaXyLpmlZehZXTaO4w6xKYDyrpkycIiZBvyS6fxEqqzEybbmloWe5atTihpsXm9d6j0iyUP56maXEvx7OaOERJRjyTdx0Q2gdU92GE5Y1vyuc1GNj7gTmL84xjHcNQOiC8Blhf3J77ykaAhFYeWAp0W1TtVz - 2]; + V62vtYqjKr7vUHagX8crbD1Pj3RQqU188LgQk6im7Spz55lXZst8JZUowhVn7jz0bBXMsqvfWOKodXpT1Le6hFHrOb7UtEvFnsLGY9ZFBZjhjQKYHD0x0UoUVFYqNdSKrJLMPgBCvFrv0fiyCCZLqZptbJsZi9hCttHTcJVZ1ZkY63OoAyp5j02vip4mrw1SkZ5_06fVVOf4Cxyo2FIwGshCl2UN5A9lmUcdYhWZFN0LmC0eVdXx_fxzUpPwuaKAcHwBEZ0cAQXqfysxTiVb70SjMOnk89XrM2q34razAD6MiwPqVLzq05wRNWFAbxWc6Nv6YRj5uiZCwnyk4IrUDwcK_x1qH1Epkh5Kub8I0bRAISObdx9dy4VEbYDAxbLusLgTYjmrI_8t9jQ9WNe8zSnfmyOfvG8pWIzBXgzANur56sXGJ6DGIEFn1POWjp8WeJ9VwKxagoEXETh_4_BXKtibxg2CX5uhIWotBtmf3Z2qllM7FDf8rjLc0ib6NrDpXEArt1gKyw4BHszFGsn3ZE1ojKg1akhO2TQ1CS_rnTnWg_xzuCqVMeabyZOcrKXPKtLLN8VZweyipoSeobDTgb9XNPtN3k15D3gnzXajF3MDJQjMUCzqFuPXvDL1I7ZUZa4Iwn3eeRFbBiktbICOI8AKvmxVR0opvRUGikTcL4CpobsupXk_hnTqKdr3ZkKMy1iZ29TiIQ3k77TnpF9aBbnYOqHSeEEGp4XKGHPJvN6zvt5cdl48qq0Gis7lbuDABnaOWB6j7KYtSWSTcvgV_Xf8W6eGnLfaRvKbwzjo6XJ666ohjJTZ6zVyH3hjKNoQdG2jqj7q6dc2weSwBIuq60zR0OtAkho_7wZcEFWevTKzz4kcHHnqmRgwVXMovcVfwJoe2bnDxp2qyZ3ZZKwssaxwbcobq2R3QjLmyPdFyufpJKzwkavnMtvqahN_SXxvbRVrD5FvUm5SN9Gx8Rma36q2S2LYxOmbVtDa28yDYOxVkzwCF1dkj9azf60ebCoHdu1F8OnYl4R62eX8H3suqKcugZcwslPstms5GUcCcd53xTs1y7JucvmnbcsTFI4veCK4_yFg_G4CqyyrARVWsMxcYWjrmRKDY5tpUlySttXqwUt2NEql371PGNmX5qC972ZjKR2LiCwccUZfb6RkptSAaGqDfWaLcDUUaJ6zqPIKzZNVXKinBmO2lO2M_k1ppG8NGbGZvy_Op8jybGIc_B9LmcGre5k9Nd0KZZRqD7X6QFVHhkNNjuKFYlx_a3vWTtmX3SrGVuQCMJEsgbqla8TS3lfkyhnjl3JVtr1LlGsDvMJAoubwHxxJ86Tv9L6k5c6K82CMeYDAXaMNh9KjqEAGTUHe6w5daraYhFYE3PLs9K0Tl7PCHyAoQutsdM2O0Sts_leOLsignSl9k1_nl8Z5LICcY11qnBusAfntTlJhH6b3TfVrks8_pf0H1Tpbj2vyqglle5oBCdeSOUJfrW9RmCJdOpvEIttyciMOEExGrMR4uXrl4F6a7VzPsFuRhi4sNib1_EDOKATGy1JQWPaPsepXwltnW_EDT5eKMGoagdkFiRPn_iDpu0ArPE1MRz5JYXPUyLQL9TuJUJWO5VvnqTQz19bwix0Z5XTFhmxGytpqJgh7TNzd_G_VXVr5N_gtFr7jmxZ4zOBOFNPytdNCw2fYUyybUkFPU43fam7IATF28q2xNwcpP95S5Mf7W4XD2sxLy5posJQqZzv60UEoPgLjUkzXZtovAT7zUibCC9LvXAwuIMaOolWRGNCLZUrSzm_yTfmEZXwUlPd0g76KaL1C6zyjXBb0DKhqcGqKBie4J3TyRv3j4wJfW4LGz0Gibv2jeJwYHfiUupWZNzG0rOtUkIYIdfZKmvwp9z9z7RlYrmxnVpgW_p2r1iloJbUoFa7yFBL0i701BLC8cy60YPgRf8nxdMSdeb34M34H7uZZFzGHfD_bb_FE08SRw_uPwSdtLMiwztlpB_9Z6X2CyqKB0rxfSSHE6k6kvByG2FqKipOMyDyAS2i7Tw3LwK6YWNVOhbVRx4gelY4g046RJsXBiXL5NTrpJL22F4zlc3o0KiSE = V62vtYqjKr7vUHagX8crbD1Pj3RQqU188LgQk6im7Spz55lXZst8JZUowhVn7jz0bBXMsqvfWOKodXpT1Le6hFHrOb7UtEvFnsLGY9ZFBZjhjQKYHD0x0UoUVFYqNdSKrJLMPgBCvFrv0fiyCCZLqZptbJsZi9hCttHTcJVZ1ZkY63OoAyp5j02vip4mrw1SkZ5_06fVVOf4Cxyo2FIwGshCl2UN5A9lmUcdYhWZFN0LmC0eVdXx_fxzUpPwuaKAcHwBEZ0cAQXqfysxTiVb70SjMOnk89XrM2q34razAD6MiwPqVLzq05wRNWFAbxWc6Nv6YRj5uiZCwnyk4IrUDwcK_x1qH1Epkh5Kub8I0bRAISObdx9dy4VEbYDAxbLusLgTYjmrI_8t9jQ9WNe8zSnfmyOfvG8pWIzBXgzANur56sXGJ6DGIEFn1POWjp8WeJ9VwKxagoEXETh_4_BXKtibxg2CX5uhIWotBtmf3Z2qllM7FDf8rjLc0ib6NrDpXEArt1gKyw4BHszFGsn3ZE1ojKg1akhO2TQ1CS_rnTnWg_xzuCqVMeabyZOcrKXPKtLLN8VZweyipoSeobDTgb9XNPtN3k15D3gnzXajF3MDJQjMUCzqFuPXvDL1I7ZUZa4Iwn3eeRFbBiktbICOI8AKvmxVR0opvRUGikTcL4CpobsupXk_hnTqKdr3ZkKMy1iZ29TiIQ3k77TnpF9aBbnYOqHSeEEGp4XKGHPJvN6zvt5cdl48qq0Gis7lbuDABnaOWB6j7KYtSWSTcvgV_Xf8W6eGnLfaRvKbwzjo6XJ666ohjJTZ6zVyH3hjKNoQdG2jqj7q6dc2weSwBIuq60zR0OtAkho_7wZcEFWevTKzz4kcHHnqmRgwVXMovcVfwJoe2bnDxp2qyZ3ZZKwssaxwbcobq2R3QjLmyPdFyufpJKzwkavnMtvqahN_SXxvbRVrD5FvUm5SN9Gx8Rma36q2S2LYxOmbVtDa28yDYOxVkzwCF1dkj9azf60ebCoHdu1F8OnYl4R62eX8H3suqKcugZcwslPstms5GUcCcd53xTs1y7JucvmnbcsTFI4veCK4_yFg_G4CqyyrARVWsMxcYWjrmRKDY5tpUlySttXqwUt2NEql371PGNmX5qC972ZjKR2LiCwccUZfb6RkptSAaGqDfWaLcDUUaJ6zqPIKzZNVXKinBmO2lO2M_k1ppG8NGbGZvy_Op8jybGIc_B9LmcGre5k9Nd0KZZRqD7X6QFVHhkNNjuKFYlx_a3vWTtmX3SrGVuQCMJEsgbqla8TS3lfkyhnjl3JVtr1LlGsDvMJAoubwHxxJ86Tv9L6k5c6K82CMeYDAXaMNh9KjqEAGTUHe6w5daraYhFYE3PLs9K0Tl7PCHyAoQutsdM2O0Sts_leOLsignSl9k1_nl8Z5LICcY11qnBusAfntTlJhH6b3TfVrks8_pf0H1Tpbj2vyqglle5oBCdeSOUJfrW9RmCJdOpvEIttyciMOEExGrMR4uXrl4F6a7VzPsFuRhi4sNib1_EDOKATGy1JQWPaPsepXwltnW_EDT5eKMGoagdkFiRPn_iDpu0ArPE1MRz5JYXPUyLQL9TuJUJWO5VvnqTQz19bwix0Z5XTFhmxGytpqJgh7TNzd_G_VXVr5N_gtFr7jmxZ4zOBOFNPytdNCw2fYUyybUkFPU43fam7IATF28q2xNwcpP95S5Mf7W4XD2sxLy5posJQqZzv60UEoPgLjUkzXZtovAT7zUibCC9LvXAwuIMaOolWRGNCLZUrSzm_yTfmEZXwUlPd0g76KaL1C6zyjXBb0DKhqcGqKBie4J3TyRv3j4wJfW4LGz0Gibv2jeJwYHfiUupWZNzG0rOtUkIYIdfZKmvwp9z9z7RlYrmxnVpgW_p2r1iloJbUoFa7yFBL0i701BLC8cy60YPgRf8nxdMSdeb34M34H7uZZFzGHfD_bb_FE08SRw_uPwSdtLMiwztlpB_9Z6X2CyqKB0rxfSSHE6k6kvByG2FqKipOMyDyAS2i7Tw3LwK6YWNVOhbVRx4gelY4g046RJsXBiXL5NTrpJL22F4zlc3o0KiSE + VLDTJUr0eYj3UiHhVWtQqVrqunxn8GIY2SPSCOKZw1azce1XN6Oqaz7crOokQxd0Jl_HNREMFQUaJQeHFmH5vE_4dX1cLiR7f9h64RWN1G3M1mKM7Y7FB1LheRSAHJA08GrqaVlh7NN05M3MGbywOWe5g91MEJX8AeOgM9Ja2XqNDj_cm1adEFa8e30NudvaPNpxFOC2C66LKK8i5xA8HVJgwFZWtYKEthyhLGYDShqNOShWyq14gC7EdfD4gR1dhvtMQDUbiGDc7G4WrjBJNb0zS0L8ALJ8CHKer7t657HqogSAcWFx2TBiQdtSP8jYK3tsS6_IefxvEGLTInAvZk5pvYhNVCDh6o8rHvfK3D_BEeFOIIsh0C_cUEX2RAsgwIMHkUbt3PbBXDp8_RuJr98J9y7eicGQLMpnpaNRz_W4vDanyNCy8SwZQij6CeJYhK9Z5AjUlta4VJTHlKy40vp3kAL9pWllUHbtAF_KsoETwLz0B7QQ5RN9b6DK2JkFFhsnRlmVrgXP_dsJib9gf_3_soE4nRVxmpm_liH19vUvlTxn3buGVkrZNsE7tSkwUiA1bBv9nMh3k6blOh6133Ym6WHqEh2nFO0wCtkd1PlgYW2_9TVzXMpwSEOi0NGp_LK6FqNiSZtHV2GEENDd15YV4CbryZLfM0QOY66Gi3gT_tRhAM3J6gSBHKN1ae9L1ucoWEQhUuYg2RcFwH3TR1J9MefSP7d7IEIbwm67h7al2_gOFIWKBt3rajglu0uTdDvmLfHd6SY6_dV2zMw8GFrAdlzE8i9YRCkJIBX3GZCmg_DsP09NVwBvRGs5znxMs47KvW8ipgOddYBylDm0eWNiSCL7NucfP6bDig9FxbLuoaRXJnWTDXEXb9OZS7CxbSn0Aph_cBLCN5_TNV73C9Hvz_6KTW9a34u1RW0Eesra9htMiKKycfHXUOe9QFhObXLBiCTSebAXH6O3Vv9C7_NLdPzSAk12YB3Vvr99sS2_rum0coC33LqNPUu_NXwKqo76sHr30xmOp7ASvq5R2AMxqzT_lKazOesV3Gu4cGWWIqWpN0kuem0xAxxKoBAnfmZZmyHlIckPpTAqMx9AZTUjiyZhuarAcfi3daF5FB3gJqZWH7XzcepCyrWwP_B_7PxaMzrI8yxhM2Ll2QYplWPApZ6Lxu7P5Q2GmM7G81pRrqFAYKMR_Licfh5OElDfR6W8RnFyIyzzdU8plHryg6RmKKusbR8gvNfYtne4JYeRHvEq623V87mCS8g6oPV1SYbSeDjfRir8QIvehNkvc2peAAtAJcBfLezojs8xTzGImP3BJLl9lHBbl8Ugb62gCbviGUaFMHhPBo9sFoLEPlG1De_gNmgWnK3Zt2hNKNqWuniLGWRgAS9jX6d7hDh6KSkVIsWaFxdt1XMjnqL1SRSBQiY9hnJkzD5XWG3oSWqUUUWCeq3kyvSdZrLRZHwsCsD027R2Xmsfekwxq_1S_09ug96n68v36Dbu6wZJr3cd4LfTPA6PbfSR_3m3DZyfPaPF_xM3mX6p7jg9GVfRtHCY8t_esPiazgDyjq_67vDqFuTOi8RAPPUKTWCsxI_XzgsBOvzQlxdIYhMF0d3Dve9iJzH7556mrXhGhFPFasFOrMjWZ6gyMpu9NuuEmrnDWcAV9uqJ6lLhTP5doiZJB8sei3RcNnQRHty4MlVKlVNasXYAtNNfPoh8zXM29wWtC9XReAxBSNaSDzqwVQU0PhfScQQwq4y04ait8KaAyuPKxmVuTcbQlWFfOr96d9umCj8A_XFmsF6mliW0FukpoTSCARZ3SG2aZmYVzPj3hTNl0EN1UDw7OMTLHM1nwbgc9I3d2r8SbLoGlbEk3nKrOv_kwYjgnyIwfiwaGd4igaLsk1cA1NAhJHsgH79ZA83wgEaxJ0iOfMKZ1QtBoIsxsecoER8HnjlvUYEfehifkE17w_OrsFCzdKgkQxe8BClbywbfbacJx86aWsSC[xU4UVdo6fPho5bRhUTjrlIMjqIY_evCyLJf0suh6fNNJ_3DxUYEO_xR1xkH9B68yOd4nSYbkstCnMA1BvxzZHFcKgYsWCq9M6sWFj2hbYtXZAMA2V8pUya5kbMgjwVwR_IKh_EeyZ5EU504YyCm79GrBpe7NMhLcqK5b41z3SzpL6eQTdwdgiZLmh_BbdR_2e0ZcLGxpg0kD_SiCYiQWzh5ekfalc_qYy9ohDjYcW4XpZtkKT0LaIwpKT_eexlt3zRaWJlQTLKmDCqe83zBQAyZx9y79siWba8uMlkcoHe7YzKgeb2Lb44q6WW_vA7Kr9_c_I0LjpZWr2nyAcoFo9aOgYD4DikZLLO3GOQnLPymmJWZGewbfJOKcABxkHBbsjYup399BZw8fM62exxL6Os5P6r8dQxQnUAghxk5yVAElumTAW3cKIKf603d1W9zymy8I006tqdZnh2sUZjqZhYn1ljJCZyFbV6Lnp6IUAuM8pm1v2BE_iBujx7lhYKEvlNGPXjkoQjQXhMudJymkqc7H3mC_695Be7Dzlc_jnHycVoDXb4EczmxL2_UqouAWiUjUCG2hWi3t4QaOucBuNtIPw0nquTOLf5rLgbzuVbRfeTzymEnU08sFsRsach7SVQKOenEZ1N6kTBQFE5SZtqb7KGPp9Who2UvLK2fOKx8CQKNv6_Lc5NXh2p8n4Ob8lqo28dyadcRKyElXXvbl0JVfL9hDNy8S1yrJ5dg3wkEW2Xay5l0rE52vwJAbFxnfJXbAUkEBxeNifGgRB872UPpJ040uyvQAuhHXnakBM_3GjgFBcjAZzr_UJ1c3PglWVrFsLB4fID5bt2SQfC9zL2igpbtoxLeNf8QeUO_faaxtzVXWw015a1xytmdBXlfHIz3zBiOepkTKe8JD2S3xI3aBva2SE6J3Cx7QZgg5lLQ9Va9EONhhN4PLzvmj9uEQsxph6Bb0dhR8l65gFMTQM0zY8Ep1kj15kHfwTtjgp_qYcjjMguuFQxOP_Wuhw8tyRfYFDCaXhacEEXwA3Gp7JaXyLpmlZehZXTaO4w6xKYDyrpkycIiZBvyS6fxEqqzEybbmloWe5atTihpsXm9d6j0iyUP56maXEvx7OaOERJRjyTdx0Q2gdU92GE5Y1vyuc1GNj7gTmL84xjHcNQOiC8Blhf3J77ykaAhFYeWAp0W1TtVz]; + putint(VLDTJUr0eYj3UiHhVWtQqVrqunxn8GIY2SPSCOKZw1azce1XN6Oqaz7crOokQxd0Jl_HNREMFQUaJQeHFmH5vE_4dX1cLiR7f9h64RWN1G3M1mKM7Y7FB1LheRSAHJA08GrqaVlh7NN05M3MGbywOWe5g91MEJX8AeOgM9Ja2XqNDj_cm1adEFa8e30NudvaPNpxFOC2C66LKK8i5xA8HVJgwFZWtYKEthyhLGYDShqNOShWyq14gC7EdfD4gR1dhvtMQDUbiGDc7G4WrjBJNb0zS0L8ALJ8CHKer7t657HqogSAcWFx2TBiQdtSP8jYK3tsS6_IefxvEGLTInAvZk5pvYhNVCDh6o8rHvfK3D_BEeFOIIsh0C_cUEX2RAsgwIMHkUbt3PbBXDp8_RuJr98J9y7eicGQLMpnpaNRz_W4vDanyNCy8SwZQij6CeJYhK9Z5AjUlta4VJTHlKy40vp3kAL9pWllUHbtAF_KsoETwLz0B7QQ5RN9b6DK2JkFFhsnRlmVrgXP_dsJib9gf_3_soE4nRVxmpm_liH19vUvlTxn3buGVkrZNsE7tSkwUiA1bBv9nMh3k6blOh6133Ym6WHqEh2nFO0wCtkd1PlgYW2_9TVzXMpwSEOi0NGp_LK6FqNiSZtHV2GEENDd15YV4CbryZLfM0QOY66Gi3gT_tRhAM3J6gSBHKN1ae9L1ucoWEQhUuYg2RcFwH3TR1J9MefSP7d7IEIbwm67h7al2_gOFIWKBt3rajglu0uTdDvmLfHd6SY6_dV2zMw8GFrAdlzE8i9YRCkJIBX3GZCmg_DsP09NVwBvRGs5znxMs47KvW8ipgOddYBylDm0eWNiSCL7NucfP6bDig9FxbLuoaRXJnWTDXEXb9OZS7CxbSn0Aph_cBLCN5_TNV73C9Hvz_6KTW9a34u1RW0Eesra9htMiKKycfHXUOe9QFhObXLBiCTSebAXH6O3Vv9C7_NLdPzSAk12YB3Vvr99sS2_rum0coC33LqNPUu_NXwKqo76sHr30xmOp7ASvq5R2AMxqzT_lKazOesV3Gu4cGWWIqWpN0kuem0xAxxKoBAnfmZZmyHlIckPpTAqMx9AZTUjiyZhuarAcfi3daF5FB3gJqZWH7XzcepCyrWwP_B_7PxaMzrI8yxhM2Ll2QYplWPApZ6Lxu7P5Q2GmM7G81pRrqFAYKMR_Licfh5OElDfR6W8RnFyIyzzdU8plHryg6RmKKusbR8gvNfYtne4JYeRHvEq623V87mCS8g6oPV1SYbSeDjfRir8QIvehNkvc2peAAtAJcBfLezojs8xTzGImP3BJLl9lHBbl8Ugb62gCbviGUaFMHhPBo9sFoLEPlG1De_gNmgWnK3Zt2hNKNqWuniLGWRgAS9jX6d7hDh6KSkVIsWaFxdt1XMjnqL1SRSBQiY9hnJkzD5XWG3oSWqUUUWCeq3kyvSdZrLRZHwsCsD027R2Xmsfekwxq_1S_09ug96n68v36Dbu6wZJr3cd4LfTPA6PbfSR_3m3DZyfPaPF_xM3mX6p7jg9GVfRtHCY8t_esPiazgDyjq_67vDqFuTOi8RAPPUKTWCsxI_XzgsBOvzQlxdIYhMF0d3Dve9iJzH7556mrXhGhFPFasFOrMjWZ6gyMpu9NuuEmrnDWcAV9uqJ6lLhTP5doiZJB8sei3RcNnQRHty4MlVKlVNasXYAtNNfPoh8zXM29wWtC9XReAxBSNaSDzqwVQU0PhfScQQwq4y04ait8KaAyuPKxmVuTcbQlWFfOr96d9umCj8A_XFmsF6mliW0FukpoTSCARZ3SG2aZmYVzPj3hTNl0EN1UDw7OMTLHM1nwbgc9I3d2r8SbLoGlbEk3nKrOv_kwYjgnyIwfiwaGd4igaLsk1cA1NAhJHsgH79ZA83wgEaxJ0iOfMKZ1QtBoIsxsecoER8HnjlvUYEfehifkE17w_OrsFCzdKgkQxe8BClbywbfbacJx86aWsSC[xU4UVdo6fPho5bRhUTjrlIMjqIY_evCyLJf0suh6fNNJ_3DxUYEO_xR1xkH9B68yOd4nSYbkstCnMA1BvxzZHFcKgYsWCq9M6sWFj2hbYtXZAMA2V8pUya5kbMgjwVwR_IKh_EeyZ5EU504YyCm79GrBpe7NMhLcqK5b41z3SzpL6eQTdwdgiZLmh_BbdR_2e0ZcLGxpg0kD_SiCYiQWzh5ekfalc_qYy9ohDjYcW4XpZtkKT0LaIwpKT_eexlt3zRaWJlQTLKmDCqe83zBQAyZx9y79siWba8uMlkcoHe7YzKgeb2Lb44q6WW_vA7Kr9_c_I0LjpZWr2nyAcoFo9aOgYD4DikZLLO3GOQnLPymmJWZGewbfJOKcABxkHBbsjYup399BZw8fM62exxL6Os5P6r8dQxQnUAghxk5yVAElumTAW3cKIKf603d1W9zymy8I006tqdZnh2sUZjqZhYn1ljJCZyFbV6Lnp6IUAuM8pm1v2BE_iBujx7lhYKEvlNGPXjkoQjQXhMudJymkqc7H3mC_695Be7Dzlc_jnHycVoDXb4EczmxL2_UqouAWiUjUCG2hWi3t4QaOucBuNtIPw0nquTOLf5rLgbzuVbRfeTzymEnU08sFsRsach7SVQKOenEZ1N6kTBQFE5SZtqb7KGPp9Who2UvLK2fOKx8CQKNv6_Lc5NXh2p8n4Ob8lqo28dyadcRKyElXXvbl0JVfL9hDNy8S1yrJ5dg3wkEW2Xay5l0rE52vwJAbFxnfJXbAUkEBxeNifGgRB872UPpJ040uyvQAuhHXnakBM_3GjgFBcjAZzr_UJ1c3PglWVrFsLB4fID5bt2SQfC9zL2igpbtoxLeNf8QeUO_faaxtzVXWw015a1xytmdBXlfHIz3zBiOepkTKe8JD2S3xI3aBva2SE6J3Cx7QZgg5lLQ9Va9EONhhN4PLzvmj9uEQsxph6Bb0dhR8l65gFMTQM0zY8Ep1kj15kHfwTtjgp_qYcjjMguuFQxOP_Wuhw8tyRfYFDCaXhacEEXwA3Gp7JaXyLpmlZehZXTaO4w6xKYDyrpkycIiZBvyS6fxEqqzEybbmloWe5atTihpsXm9d6j0iyUP56maXEvx7OaOERJRjyTdx0Q2gdU92GE5Y1vyuc1GNj7gTmL84xjHcNQOiC8Blhf3J77ykaAhFYeWAp0W1TtVz]); + putch(10); + xU4UVdo6fPho5bRhUTjrlIMjqIY_evCyLJf0suh6fNNJ_3DxUYEO_xR1xkH9B68yOd4nSYbkstCnMA1BvxzZHFcKgYsWCq9M6sWFj2hbYtXZAMA2V8pUya5kbMgjwVwR_IKh_EeyZ5EU504YyCm79GrBpe7NMhLcqK5b41z3SzpL6eQTdwdgiZLmh_BbdR_2e0ZcLGxpg0kD_SiCYiQWzh5ekfalc_qYy9ohDjYcW4XpZtkKT0LaIwpKT_eexlt3zRaWJlQTLKmDCqe83zBQAyZx9y79siWba8uMlkcoHe7YzKgeb2Lb44q6WW_vA7Kr9_c_I0LjpZWr2nyAcoFo9aOgYD4DikZLLO3GOQnLPymmJWZGewbfJOKcABxkHBbsjYup399BZw8fM62exxL6Os5P6r8dQxQnUAghxk5yVAElumTAW3cKIKf603d1W9zymy8I006tqdZnh2sUZjqZhYn1ljJCZyFbV6Lnp6IUAuM8pm1v2BE_iBujx7lhYKEvlNGPXjkoQjQXhMudJymkqc7H3mC_695Be7Dzlc_jnHycVoDXb4EczmxL2_UqouAWiUjUCG2hWi3t4QaOucBuNtIPw0nquTOLf5rLgbzuVbRfeTzymEnU08sFsRsach7SVQKOenEZ1N6kTBQFE5SZtqb7KGPp9Who2UvLK2fOKx8CQKNv6_Lc5NXh2p8n4Ob8lqo28dyadcRKyElXXvbl0JVfL9hDNy8S1yrJ5dg3wkEW2Xay5l0rE52vwJAbFxnfJXbAUkEBxeNifGgRB872UPpJ040uyvQAuhHXnakBM_3GjgFBcjAZzr_UJ1c3PglWVrFsLB4fID5bt2SQfC9zL2igpbtoxLeNf8QeUO_faaxtzVXWw015a1xytmdBXlfHIz3zBiOepkTKe8JD2S3xI3aBva2SE6J3Cx7QZgg5lLQ9Va9EONhhN4PLzvmj9uEQsxph6Bb0dhR8l65gFMTQM0zY8Ep1kj15kHfwTtjgp_qYcjjMguuFQxOP_Wuhw8tyRfYFDCaXhacEEXwA3Gp7JaXyLpmlZehZXTaO4w6xKYDyrpkycIiZBvyS6fxEqqzEybbmloWe5atTihpsXm9d6j0iyUP56maXEvx7OaOERJRjyTdx0Q2gdU92GE5Y1vyuc1GNj7gTmL84xjHcNQOiC8Blhf3J77ykaAhFYeWAp0W1TtVz = xU4UVdo6fPho5bRhUTjrlIMjqIY_evCyLJf0suh6fNNJ_3DxUYEO_xR1xkH9B68yOd4nSYbkstCnMA1BvxzZHFcKgYsWCq9M6sWFj2hbYtXZAMA2V8pUya5kbMgjwVwR_IKh_EeyZ5EU504YyCm79GrBpe7NMhLcqK5b41z3SzpL6eQTdwdgiZLmh_BbdR_2e0ZcLGxpg0kD_SiCYiQWzh5ekfalc_qYy9ohDjYcW4XpZtkKT0LaIwpKT_eexlt3zRaWJlQTLKmDCqe83zBQAyZx9y79siWba8uMlkcoHe7YzKgeb2Lb44q6WW_vA7Kr9_c_I0LjpZWr2nyAcoFo9aOgYD4DikZLLO3GOQnLPymmJWZGewbfJOKcABxkHBbsjYup399BZw8fM62exxL6Os5P6r8dQxQnUAghxk5yVAElumTAW3cKIKf603d1W9zymy8I006tqdZnh2sUZjqZhYn1ljJCZyFbV6Lnp6IUAuM8pm1v2BE_iBujx7lhYKEvlNGPXjkoQjQXhMudJymkqc7H3mC_695Be7Dzlc_jnHycVoDXb4EczmxL2_UqouAWiUjUCG2hWi3t4QaOucBuNtIPw0nquTOLf5rLgbzuVbRfeTzymEnU08sFsRsach7SVQKOenEZ1N6kTBQFE5SZtqb7KGPp9Who2UvLK2fOKx8CQKNv6_Lc5NXh2p8n4Ob8lqo28dyadcRKyElXXvbl0JVfL9hDNy8S1yrJ5dg3wkEW2Xay5l0rE52vwJAbFxnfJXbAUkEBxeNifGgRB872UPpJ040uyvQAuhHXnakBM_3GjgFBcjAZzr_UJ1c3PglWVrFsLB4fID5bt2SQfC9zL2igpbtoxLeNf8QeUO_faaxtzVXWw015a1xytmdBXlfHIz3zBiOepkTKe8JD2S3xI3aBva2SE6J3Cx7QZgg5lLQ9Va9EONhhN4PLzvmj9uEQsxph6Bb0dhR8l65gFMTQM0zY8Ep1kj15kHfwTtjgp_qYcjjMguuFQxOP_Wuhw8tyRfYFDCaXhacEEXwA3Gp7JaXyLpmlZehZXTaO4w6xKYDyrpkycIiZBvyS6fxEqqzEybbmloWe5atTihpsXm9d6j0iyUP56maXEvx7OaOERJRjyTdx0Q2gdU92GE5Y1vyuc1GNj7gTmL84xjHcNQOiC8Blhf3J77ykaAhFYeWAp0W1TtVz + 1; + } + return V62vtYqjKr7vUHagX8crbD1Pj3RQqU188LgQk6im7Spz55lXZst8JZUowhVn7jz0bBXMsqvfWOKodXpT1Le6hFHrOb7UtEvFnsLGY9ZFBZjhjQKYHD0x0UoUVFYqNdSKrJLMPgBCvFrv0fiyCCZLqZptbJsZi9hCttHTcJVZ1ZkY63OoAyp5j02vip4mrw1SkZ5_06fVVOf4Cxyo2FIwGshCl2UN5A9lmUcdYhWZFN0LmC0eVdXx_fxzUpPwuaKAcHwBEZ0cAQXqfysxTiVb70SjMOnk89XrM2q34razAD6MiwPqVLzq05wRNWFAbxWc6Nv6YRj5uiZCwnyk4IrUDwcK_x1qH1Epkh5Kub8I0bRAISObdx9dy4VEbYDAxbLusLgTYjmrI_8t9jQ9WNe8zSnfmyOfvG8pWIzBXgzANur56sXGJ6DGIEFn1POWjp8WeJ9VwKxagoEXETh_4_BXKtibxg2CX5uhIWotBtmf3Z2qllM7FDf8rjLc0ib6NrDpXEArt1gKyw4BHszFGsn3ZE1ojKg1akhO2TQ1CS_rnTnWg_xzuCqVMeabyZOcrKXPKtLLN8VZweyipoSeobDTgb9XNPtN3k15D3gnzXajF3MDJQjMUCzqFuPXvDL1I7ZUZa4Iwn3eeRFbBiktbICOI8AKvmxVR0opvRUGikTcL4CpobsupXk_hnTqKdr3ZkKMy1iZ29TiIQ3k77TnpF9aBbnYOqHSeEEGp4XKGHPJvN6zvt5cdl48qq0Gis7lbuDABnaOWB6j7KYtSWSTcvgV_Xf8W6eGnLfaRvKbwzjo6XJ666ohjJTZ6zVyH3hjKNoQdG2jqj7q6dc2weSwBIuq60zR0OtAkho_7wZcEFWevTKzz4kcHHnqmRgwVXMovcVfwJoe2bnDxp2qyZ3ZZKwssaxwbcobq2R3QjLmyPdFyufpJKzwkavnMtvqahN_SXxvbRVrD5FvUm5SN9Gx8Rma36q2S2LYxOmbVtDa28yDYOxVkzwCF1dkj9azf60ebCoHdu1F8OnYl4R62eX8H3suqKcugZcwslPstms5GUcCcd53xTs1y7JucvmnbcsTFI4veCK4_yFg_G4CqyyrARVWsMxcYWjrmRKDY5tpUlySttXqwUt2NEql371PGNmX5qC972ZjKR2LiCwccUZfb6RkptSAaGqDfWaLcDUUaJ6zqPIKzZNVXKinBmO2lO2M_k1ppG8NGbGZvy_Op8jybGIc_B9LmcGre5k9Nd0KZZRqD7X6QFVHhkNNjuKFYlx_a3vWTtmX3SrGVuQCMJEsgbqla8TS3lfkyhnjl3JVtr1LlGsDvMJAoubwHxxJ86Tv9L6k5c6K82CMeYDAXaMNh9KjqEAGTUHe6w5daraYhFYE3PLs9K0Tl7PCHyAoQutsdM2O0Sts_leOLsignSl9k1_nl8Z5LICcY11qnBusAfntTlJhH6b3TfVrks8_pf0H1Tpbj2vyqglle5oBCdeSOUJfrW9RmCJdOpvEIttyciMOEExGrMR4uXrl4F6a7VzPsFuRhi4sNib1_EDOKATGy1JQWPaPsepXwltnW_EDT5eKMGoagdkFiRPn_iDpu0ArPE1MRz5JYXPUyLQL9TuJUJWO5VvnqTQz19bwix0Z5XTFhmxGytpqJgh7TNzd_G_VXVr5N_gtFr7jmxZ4zOBOFNPytdNCw2fYUyybUkFPU43fam7IATF28q2xNwcpP95S5Mf7W4XD2sxLy5posJQqZzv60UEoPgLjUkzXZtovAT7zUibCC9LvXAwuIMaOolWRGNCLZUrSzm_yTfmEZXwUlPd0g76KaL1C6zyjXBb0DKhqcGqKBie4J3TyRv3j4wJfW4LGz0Gibv2jeJwYHfiUupWZNzG0rOtUkIYIdfZKmvwp9z9z7RlYrmxnVpgW_p2r1iloJbUoFa7yFBL0i701BLC8cy60YPgRf8nxdMSdeb34M34H7uZZFzGHfD_bb_FE08SRw_uPwSdtLMiwztlpB_9Z6X2CyqKB0rxfSSHE6k6kvByG2FqKipOMyDyAS2i7Tw3LwK6YWNVOhbVRx4gelY4g046RJsXBiXL5NTrpJL22F4zlc3o0KiSE; +} diff --git a/sysy_sets/80_chaos_token.out b/sysy_sets/80_chaos_token.out new file mode 100755 index 0000000..5e4427e --- /dev/null +++ b/sysy_sets/80_chaos_token.out @@ -0,0 +1,29 @@ +Welcome to the Japari Park! +Araiguma says hello to Tairiku Ookami +Tairiku Ookami says hello to Saabaru +Araiguma says hello to Kaban +Hunboruto Pengin says hello to Hashibirokou +Hashibirokou says hello to Tairiku Ookami +Hunboruto Pengin says hello to Saabaru +Hashibirokou says hello to Araiguma +Araiguma says hello to Hunboruto Pengin +Hashibirokou says hello to Kaban +Araiguma says hello to Hashibirokou +Kaban says hello to Tairiku Ookami +Araiguma says hello to Saabaru +Kaban says hello to Araiguma +Hashibirokou says hello to Hunboruto Pengin +Saabaru says hello to Tairiku Ookami +Hashibirokou says hello to Saabaru +Saabaru says hello to Araiguma +Kaban says hello to Hunboruto Pengin +Saabaru says hello to Kaban +Kaban says hello to Hashibirokou +Tairiku Ookami says hello to Kaban +Kaban says hello to Saabaru +Hunboruto Pengin says hello to Tairiku Ookami +Saabaru says hello to Hunboruto Pengin +Hunboruto Pengin says hello to Araiguma +Saabaru says hello to Hashibirokou +Hunboruto Pengin says hello to Kaban +0 diff --git a/sysy_sets/80_chaos_token.sy b/sysy_sets/80_chaos_token.sy new file mode 100755 index 0000000..19d6e75 --- /dev/null +++ b/sysy_sets/80_chaos_token.sy @@ -0,0 +1,201 @@ +int __HELLO [ + + +100 + ] += { +87, 101, 108, 99, +111, 109, 101, +32, 116, 111, 32, +116, 104, +101, 32, 74, +97, + +112, 97, + + 114, 105, 32, 80, 97, + + + + +114, 107, 33, 10 }; /* Names of +kemono +friends */ int N4__mE___[6][50] = { { 83, 97, 97, 98, +97, +114, +117 }, { 75, 97, 98, + +97, 110 + +}, { + + +72, + + 97, +115, 104, 105, +98, 105, 114, 111, + + + + + + +107, + 111, + + +117 + +}, { 65, 114, + +97, + +105, +103, + +117, +109, + + + 97 }, + { 72, 117, +110, 98, 111, 114, +117, + +116, 111, 32, 80, +101, 110, + + 103, 105, 110 +}, + { 84, 97, 105, 114, 105, 107, 117, 32, 79, + + +111, 107, +97, +109, + + + + + + + 105 } }; + int + +saY_HeI10_To[40] = { 32, +115, 97, 121, + + 115, + +32, +104, + + 101, 108, 108, 111, + + 32, + + +116, 111, +32 }; int + RET[5] += +{10}; int putstr( +int str[ ] ) { + int + + iNd__1X ; iNd__1X = 0 ; while ( str + [ iNd__1X + ] ) { + + putch ( + +str[ iNd__1X +] + ) ; iNd__1X += +iNd__1X + + + 1 + +; } return iNd__1X + ; } int main( /* no param */ ) { +putstr( +__HELLO ) ; int i = + 0 ; /* say + + + hello to + kemono friends +~ */ while ( + + 1 ) { + +int _ + = i + +/ 6 + +; int __ += +i % 6 + +; + + if +( + +_ + +!= + + + __ ) + { putstr( + +N4__mE___ + + [ _ + ] ) +; putstr( +saY_HeI10_To ) ; +putstr( +N4__mE___ [ + + + +__ ] ) + + +; + + putstr( +RET +) ; +} +/* + do + + linear +modulo +to find the next pair of friends */ i = ( i +* + + +17 + ++ 23 +) +% + + +32 + + + ; +if ( i +== + 0 ) { break ; } + + + } return 0; } diff --git a/sysy_sets/81_skip_spaces.in b/sysy_sets/81_skip_spaces.in new file mode 100755 index 0000000..ce085ff --- /dev/null +++ b/sysy_sets/81_skip_spaces.in @@ -0,0 +1,3 @@ +1 2 3 4 5 6 7 8 9 10 +11 12 13 14 15 16 17 18 19 20 +23 233 2333 23333 233333 0 0 diff --git a/sysy_sets/81_skip_spaces.out b/sysy_sets/81_skip_spaces.out new file mode 100755 index 0000000..c3f407c --- /dev/null +++ b/sysy_sets/81_skip_spaces.out @@ -0,0 +1 @@ +55 diff --git a/sysy_sets/81_skip_spaces.sy b/sysy_sets/81_skip_spaces.sy new file mode 100755 index 0000000..fae3918 --- /dev/null +++ b/sysy_sets/81_skip_spaces.sy @@ -0,0 +1,22 @@ +// ??? // ???? + // ????? +/* + +int main() { + int arr[100], i = 0, sum = 0; + while (getint()) { + arr[i] = getint(); + i = i + 1; + }*/ +int main() { + int arr[100], i = 0, sum = 0; + while (getint()) { + arr[i] = getint(); + i = i + 1; + } + while (i) { + i = i - 1; + sum = sum + arr[i]; + } + return sum % 79; +} \ No newline at end of file diff --git a/sysy_sets/82_long_func.out b/sysy_sets/82_long_func.out new file mode 100755 index 0000000..1353c7c --- /dev/null +++ b/sysy_sets/82_long_func.out @@ -0,0 +1,17 @@ +1 +2 +4 +8 +16 +32 +64 +128 +256 +512 +1024 +2048 +4096 +8192 +16384 +32768 +0 diff --git a/sysy_sets/82_long_func.sy b/sysy_sets/82_long_func.sy new file mode 100755 index 0000000..15cc41d --- /dev/null +++ b/sysy_sets/82_long_func.sy @@ -0,0 +1,1382 @@ +const int SHIFT_TABLE[16] = {1, 2, 4, 8, 16, 32, 64, 128, + 256, 512, 1024, 2048, 4096, 8192, 16384, 32768}; + +int long_func() { + int ans, i, x, y, cur; + { + int pl = 2, pr = 0, pres = 1; + while (pr > 0) { + ans = 0; + i = 0; + x = pr; + y = 1; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + if (ans) { + { + int ml = pres, mr = pl, mres = 0; + while (mr) { + ans = 0; + i = 0; + x = mr; + y = 1; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + if (ans) { + { + int al = mres, c = ml, sum; + while (c) { + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2) { + if (y % 2 == 0) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + } else if (y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + sum = ans; + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + c = ans; + if ((1) > 15) { + ans = 0; + } else { + ans = 0; + i = 0; + x = (c)*SHIFT_TABLE[1]; + y = 0xffff; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + } + c = ans; + al = sum; + } + ans = al; + } + mres = ans; + } + { + int al = ml, c = ml, sum; + while (c) { + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2) { + if (y % 2 == 0) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + } else if (y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + sum = ans; + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + c = ans; + if ((1) > 15) { + ans = 0; + } else { + ans = 0; + i = 0; + x = (c)*SHIFT_TABLE[1]; + y = 0xffff; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + } + c = ans; + al = sum; + } + ans = al; + } + ml = ans; + x = mr; + y = 1; + if (y >= 15) { + if (x < 0) { + ans = 0xffff; + } else { + ans = 0; + } + } else if (y > 0) { + if (x > 0x7fff) { + x = x / SHIFT_TABLE[y]; + ans = x + 65536 - SHIFT_TABLE[15 - y + 1]; + } else { + ans = x / SHIFT_TABLE[y]; + } + } else { + ans = x; + } + mr = ans; + } + ans = mres; + } + pres = ans; + } + { + int ml = pl, mr = pl, mres = 0; + while (mr) { + ans = 0; + i = 0; + x = mr; + y = 1; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + if (ans) { + { + int al = mres, c = ml, sum; + while (c) { + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2) { + if (y % 2 == 0) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + } else if (y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + sum = ans; + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + c = ans; + if ((1) > 15) { + ans = 0; + } else { + ans = 0; + i = 0; + x = (c)*SHIFT_TABLE[1]; + y = 0xffff; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + } + c = ans; + al = sum; + } + ans = al; + } + mres = ans; + } + { + int al = ml, c = ml, sum; + while (c) { + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2) { + if (y % 2 == 0) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + } else if (y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + sum = ans; + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + c = ans; + if ((1) > 15) { + ans = 0; + } else { + ans = 0; + i = 0; + x = (c)*SHIFT_TABLE[1]; + y = 0xffff; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + } + c = ans; + al = sum; + } + ans = al; + } + ml = ans; + x = mr; + y = 1; + if (y >= 15) { + if (x < 0) { + ans = 0xffff; + } else { + ans = 0; + } + } else if (y > 0) { + if (x > 0x7fff) { + x = x / SHIFT_TABLE[y]; + ans = x + 65536 - SHIFT_TABLE[15 - y + 1]; + } else { + ans = x / SHIFT_TABLE[y]; + } + } else { + ans = x; + } + mr = ans; + } + ans = mres; + } + pl = ans; + x = pr; + y = 1; + if (y >= 15) { + if (x < 0) { + ans = 0xffff; + } else { + ans = 0; + } + } else if (y > 0) { + if (x > 0x7fff) { + x = x / SHIFT_TABLE[y]; + ans = x + 65536 - SHIFT_TABLE[15 - y + 1]; + } else { + ans = x / SHIFT_TABLE[y]; + } + } else { + ans = x; + } + pr = ans; + } + ans = pres; + } + putint(ans); + putch(10); + { + int pl = 2, pr = 1, pres = 1; + while (pr > 0) { + ans = 0; + i = 0; + x = pr; + y = 1; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + if (ans) { + { + int ml = pres, mr = pl, mres = 0; + while (mr) { + ans = 0; + i = 0; + x = mr; + y = 1; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + if (ans) { + { + int al = mres, c = ml, sum; + while (c) { + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2) { + if (y % 2 == 0) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + } else if (y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + sum = ans; + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + c = ans; + if ((1) > 15) { + ans = 0; + } else { + ans = 0; + i = 0; + x = (c)*SHIFT_TABLE[1]; + y = 0xffff; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + } + c = ans; + al = sum; + } + ans = al; + } + mres = ans; + } + { + int al = ml, c = ml, sum; + while (c) { + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2) { + if (y % 2 == 0) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + } else if (y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + sum = ans; + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + c = ans; + if ((1) > 15) { + ans = 0; + } else { + ans = 0; + i = 0; + x = (c)*SHIFT_TABLE[1]; + y = 0xffff; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + } + c = ans; + al = sum; + } + ans = al; + } + ml = ans; + x = mr; + y = 1; + if (y >= 15) { + if (x < 0) { + ans = 0xffff; + } else { + ans = 0; + } + } else if (y > 0) { + if (x > 0x7fff) { + x = x / SHIFT_TABLE[y]; + ans = x + 65536 - SHIFT_TABLE[15 - y + 1]; + } else { + ans = x / SHIFT_TABLE[y]; + } + } else { + ans = x; + } + mr = ans; + } + ans = mres; + } + pres = ans; + } + { + int ml = pl, mr = pl, mres = 0; + while (mr) { + ans = 0; + i = 0; + x = mr; + y = 1; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + if (ans) { + { + int al = mres, c = ml, sum; + while (c) { + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2) { + if (y % 2 == 0) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + } else if (y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + sum = ans; + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + c = ans; + if ((1) > 15) { + ans = 0; + } else { + ans = 0; + i = 0; + x = (c)*SHIFT_TABLE[1]; + y = 0xffff; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + } + c = ans; + al = sum; + } + ans = al; + } + mres = ans; + } + { + int al = ml, c = ml, sum; + while (c) { + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2) { + if (y % 2 == 0) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + } else if (y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + sum = ans; + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + c = ans; + if ((1) > 15) { + ans = 0; + } else { + ans = 0; + i = 0; + x = (c)*SHIFT_TABLE[1]; + y = 0xffff; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + } + c = ans; + al = sum; + } + ans = al; + } + ml = ans; + x = mr; + y = 1; + if (y >= 15) { + if (x < 0) { + ans = 0xffff; + } else { + ans = 0; + } + } else if (y > 0) { + if (x > 0x7fff) { + x = x / SHIFT_TABLE[y]; + ans = x + 65536 - SHIFT_TABLE[15 - y + 1]; + } else { + ans = x / SHIFT_TABLE[y]; + } + } else { + ans = x; + } + mr = ans; + } + ans = mres; + } + pl = ans; + x = pr; + y = 1; + if (y >= 15) { + if (x < 0) { + ans = 0xffff; + } else { + ans = 0; + } + } else if (y > 0) { + if (x > 0x7fff) { + x = x / SHIFT_TABLE[y]; + ans = x + 65536 - SHIFT_TABLE[15 - y + 1]; + } else { + ans = x / SHIFT_TABLE[y]; + } + } else { + ans = x; + } + pr = ans; + } + ans = pres; + } + putint(ans); + putch(10); + cur = 2; + while (cur < 16) { + { + int pl = 2, pr = cur, pres = 1; + while (pr > 0) { + ans = 0; + i = 0; + x = pr; + y = 1; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + if (ans) { + { + int ml = pres, mr = pl, mres = 0; + while (mr) { + ans = 0; + i = 0; + x = mr; + y = 1; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + if (ans) { + { + int al = mres, c = ml, sum; + while (c) { + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2) { + if (y % 2 == 0) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + } else if (y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + sum = ans; + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + c = ans; + if ((1) > 15) { + ans = 0; + } else { + ans = 0; + i = 0; + x = (c)*SHIFT_TABLE[1]; + y = 0xffff; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + } + c = ans; + al = sum; + } + ans = al; + } + mres = ans; + } + { + int al = ml, c = ml, sum; + while (c) { + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2) { + if (y % 2 == 0) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + } else if (y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + sum = ans; + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + c = ans; + if ((1) > 15) { + ans = 0; + } else { + ans = 0; + i = 0; + x = (c)*SHIFT_TABLE[1]; + y = 0xffff; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + } + c = ans; + al = sum; + } + ans = al; + } + ml = ans; + x = mr; + y = 1; + if (y >= 15) { + if (x < 0) { + ans = 0xffff; + } else { + ans = 0; + } + } else if (y > 0) { + if (x > 0x7fff) { + x = x / SHIFT_TABLE[y]; + ans = x + 65536 - SHIFT_TABLE[15 - y + 1]; + } else { + ans = x / SHIFT_TABLE[y]; + } + } else { + ans = x; + } + mr = ans; + } + ans = mres; + } + pres = ans; + } + { + int ml = pl, mr = pl, mres = 0; + while (mr) { + ans = 0; + i = 0; + x = mr; + y = 1; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + if (ans) { + { + int al = mres, c = ml, sum; + while (c) { + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2) { + if (y % 2 == 0) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + } else if (y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + sum = ans; + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + c = ans; + if ((1) > 15) { + ans = 0; + } else { + ans = 0; + i = 0; + x = (c)*SHIFT_TABLE[1]; + y = 0xffff; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + } + c = ans; + al = sum; + } + ans = al; + } + mres = ans; + } + { + int al = ml, c = ml, sum; + while (c) { + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2) { + if (y % 2 == 0) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + } else if (y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + sum = ans; + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + c = ans; + if ((1) > 15) { + ans = 0; + } else { + ans = 0; + i = 0; + x = (c)*SHIFT_TABLE[1]; + y = 0xffff; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + } + c = ans; + al = sum; + } + ans = al; + } + ml = ans; + x = mr; + y = 1; + if (y >= 15) { + if (x < 0) { + ans = 0xffff; + } else { + ans = 0; + } + } else if (y > 0) { + if (x > 0x7fff) { + x = x / SHIFT_TABLE[y]; + ans = x + 65536 - SHIFT_TABLE[15 - y + 1]; + } else { + ans = x / SHIFT_TABLE[y]; + } + } else { + ans = x; + } + mr = ans; + } + ans = mres; + } + pl = ans; + x = pr; + y = 1; + if (y >= 15) { + if (x < 0) { + ans = 0xffff; + } else { + ans = 0; + } + } else if (y > 0) { + if (x > 0x7fff) { + x = x / SHIFT_TABLE[y]; + ans = x + 65536 - SHIFT_TABLE[15 - y + 1]; + } else { + ans = x / SHIFT_TABLE[y]; + } + } else { + ans = x; + } + pr = ans; + } + ans = pres; + } + putint(ans); + putch(10); + cur = cur + 1; + } + cur = 0; + while (cur < 16) { + { + int pl = 2, pr = cur, pres = 1; + while (pr > 0) { + ans = 0; + i = 0; + x = pr; + y = 1; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + if (ans) { + { + int ml = pres, mr = pl, mres = 0; + while (mr) { + ans = 0; + i = 0; + x = mr; + y = 1; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + if (ans) { + { + int al = mres, c = ml, sum; + while (c) { + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2) { + if (y % 2 == 0) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + } else if (y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + sum = ans; + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + c = ans; + if ((1) > 15) { + ans = 0; + } else { + ans = 0; + i = 0; + x = (c)*SHIFT_TABLE[1]; + y = 0xffff; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + } + c = ans; + al = sum; + } + ans = al; + } + mres = ans; + } + { + int al = ml, c = ml, sum; + while (c) { + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2) { + if (y % 2 == 0) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + } else if (y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + sum = ans; + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + c = ans; + if ((1) > 15) { + ans = 0; + } else { + ans = 0; + i = 0; + x = (c)*SHIFT_TABLE[1]; + y = 0xffff; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + } + c = ans; + al = sum; + } + ans = al; + } + ml = ans; + x = mr; + y = 1; + if (y >= 15) { + if (x < 0) { + ans = 0xffff; + } else { + ans = 0; + } + } else if (y > 0) { + if (x > 0x7fff) { + x = x / SHIFT_TABLE[y]; + ans = x + 65536 - SHIFT_TABLE[15 - y + 1]; + } else { + ans = x / SHIFT_TABLE[y]; + } + } else { + ans = x; + } + mr = ans; + } + ans = mres; + } + pres = ans; + } + { + int ml = pl, mr = pl, mres = 0; + while (mr) { + ans = 0; + i = 0; + x = mr; + y = 1; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + if (ans) { + { + int al = mres, c = ml, sum; + while (c) { + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2) { + if (y % 2 == 0) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + } else if (y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + sum = ans; + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + c = ans; + if ((1) > 15) { + ans = 0; + } else { + ans = 0; + i = 0; + x = (c)*SHIFT_TABLE[1]; + y = 0xffff; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + } + c = ans; + al = sum; + } + ans = al; + } + mres = ans; + } + { + int al = ml, c = ml, sum; + while (c) { + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2) { + if (y % 2 == 0) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + } else if (y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + sum = ans; + ans = 0; + i = 0; + x = al; + y = c; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + c = ans; + if ((1) > 15) { + ans = 0; + } else { + ans = 0; + i = 0; + x = (c)*SHIFT_TABLE[1]; + y = 0xffff; + while (i < 16) { + if (x % 2 && y % 2) { + ans = ans + 1 * SHIFT_TABLE[i]; + } + x = x / 2; + y = y / 2; + i = i + 1; + } + } + c = ans; + al = sum; + } + ans = al; + } + ml = ans; + x = mr; + y = 1; + if (y >= 15) { + if (x < 0) { + ans = 0xffff; + } else { + ans = 0; + } + } else if (y > 0) { + if (x > 0x7fff) { + x = x / SHIFT_TABLE[y]; + ans = x + 65536 - SHIFT_TABLE[15 - y + 1]; + } else { + ans = x / SHIFT_TABLE[y]; + } + } else { + ans = x; + } + mr = ans; + } + ans = mres; + } + pl = ans; + x = pr; + y = 1; + if (y >= 15) { + if (x < 0) { + ans = 0xffff; + } else { + ans = 0; + } + } else if (y > 0) { + if (x > 0x7fff) { + x = x / SHIFT_TABLE[y]; + ans = x + 65536 - SHIFT_TABLE[15 - y + 1]; + } else { + ans = x / SHIFT_TABLE[y]; + } + } else { + ans = x; + } + pr = ans; + } + ans = pres; + } + if (SHIFT_TABLE[cur] != ans) return 1; + cur = cur + 1; + } + return 0; +} + +int main() { + return long_func(); +} diff --git a/sysy_sets/83_long_array.out b/sysy_sets/83_long_array.out new file mode 100755 index 0000000..a5f9d74 --- /dev/null +++ b/sysy_sets/83_long_array.out @@ -0,0 +1,2 @@ +02425294124166176216218-22282-34782142718170218357718485218672718700218877718865218842718825218832718815218822718825218832718815218822718805218 +216 diff --git a/sysy_sets/83_long_array.sy b/sysy_sets/83_long_array.sy new file mode 100755 index 0000000..251117b --- /dev/null +++ b/sysy_sets/83_long_array.sy @@ -0,0 +1,61 @@ +const int N = 10000; + +int long_array(int k) { + int a1[N]; + int a2[N]; + int a3[N]; + int i = 0; + while (i < N) { + a1[i] = (i * i) % 10; + i = i + 1; + } + i = 0; + while (i < N) { + a2[i] = (a1[i] * a1[i]) % 10; + i = i + 1; + } + i = 0; + while (i < N) { + a3[i] = (a2[i] * a2[i]) % 100 + a1[i]; + i = i + 1; + } + int ans = 0; + i = 0; + while (i < N) { + if (i < 10) { + ans = (ans + a3[i]) % 1333; + putint(ans); + } + else if (i < 20) { + int j = N / 2; + while (j < N) { + ans = ans + a3[i] - a1[j]; + j = j + 1; + } + putint(ans); + } + else if (i < 30) { + int j = N / 2; + while (j < N) { + if (j > 2233) { + ans = ans + a2[i] - a1[j]; + j = j + 1; + } + else { + ans = (ans + a1[i] + a3[j]) % 13333; + j = j + 2; + } + } + putint(ans); + } + else { + ans = (ans + a3[i] * k) % 99988; + } + i = i + 1; + } + return ans; +} + +int main() { + return long_array(9); +} diff --git a/sysy_sets/84_long_array2.out b/sysy_sets/84_long_array2.out new file mode 100755 index 0000000..043e571 --- /dev/null +++ b/sysy_sets/84_long_array2.out @@ -0,0 +1,2 @@ +3 +0 diff --git a/sysy_sets/84_long_array2.sy b/sysy_sets/84_long_array2.sy new file mode 100755 index 0000000..153930f --- /dev/null +++ b/sysy_sets/84_long_array2.sy @@ -0,0 +1,19 @@ +int a[4096]; + +int f1(int b[]) +{ + a[5] = 4000; + a[4000] = 3; + a[4095] = 7; + b[a[4095]] = a[2216] + 9; + return a[a[5]]; +} + +int main() +{ + int b[4][1024] = {{}, {1}, {2, 3}, {4, 5, 6}}; + int c[1024][4] = {{1, 2}, {3, 4}}; + putint(f1(c[0])); + putch(10); + return c[2][0]; +} \ No newline at end of file diff --git a/sysy_sets/85_long_code.out b/sysy_sets/85_long_code.out new file mode 100755 index 0000000..f7bf329 --- /dev/null +++ b/sysy_sets/85_long_code.out @@ -0,0 +1,2 @@ +7238926282254275832735749053546579352646394592968929756452279588796363928129015723262728293639586883878996254264273279282290354452459574639657756905929935175115723262728293639586883878996254264273279282290354452459574639657756905929935157232627282936395868838789962542642732792822903544524595746396577569059299351572326272829363958688387899625426427327928229035445245957463965775690592993500014500056800018350002210000119500024160002770003581016102157158658902805545816096195895834243461553125546824662331115043274-77600 +0 diff --git a/sysy_sets/85_long_code.sy b/sysy_sets/85_long_code.sy new file mode 100755 index 0000000..9eb211e --- /dev/null +++ b/sysy_sets/85_long_code.sy @@ -0,0 +1,303 @@ +// Really long code; +int n; + +int bubblesort(int arr[]) { + int i; + int j; + i =0; + while(i < n-1){ + // Last i elements are already in place + j = 0; + while(j < n-i-1){ + if (arr[j] > arr[j+1]) { + // swap(&arr[j], &arr[j+1]); + int tmp; + tmp = arr[j+1]; + arr[j+1] = arr[j]; + arr[j] = tmp; + } + j = j + 1; + } + i = i + 1; + } + return 0; +} + +int insertsort(int a[]) { + int i; + i = 1; + while(i-1&&temp k - 1) + { + j = j - 1; + } + + if(i < j) + { + arr[i] = arr[j]; + i = i + 1; + } + + while(i < j && arr[i] < k) + { + i = i + 1; + } + + if(i < j) + { + arr[j] = arr[i]; + j = j - 1; + } + } + + arr[i] = k; + int tmp; + tmp = i - 1; + tmp = QuickSort(arr, low, tmp); + tmp = i + 1; + tmp = QuickSort(arr, tmp, high); + } + return 0; +} + + +int getMid(int arr[]) { + int mid; + if (n % 2 == 0) { + mid = n / 2; + return (arr[mid] + arr[mid - 1]) / 2; + } else { + mid = n / 2; + return arr[mid]; + } +} + +int getMost(int arr[]) { + int count[1000]; + int i; + i = 0; + while (i < 1000) { + count[i] = 0; + i = i + 1; + } + i = 0; + int max; + int number; + max = 0; + while (i < n) { + int num; + num = arr[i]; + count[num] = count[num] + 1; + if (count[num] > max) { + max = count[num]; + number = num; + } + i = i + 1; + } + return number; +} + +int revert(int arr[]) { + int temp; + int i; + int j; + i = 0; + j = 0; + while (i < j) { + temp = arr[i]; + arr[i] = arr[j]; + arr[j] = temp; + i = i + 1; + j = j - 1; + } + return 0; +} + +int arrCopy(int src[], int target[]) { + int i; + i = 0; + while (i < n) { + target[i] = src[i]; + i = i + 1; + } + return 0; +} + +int calSum(int arr[], int stride) { + int sum; + sum = 0; + int i; + i = 0; + while (i < n) { + sum = sum + arr[i]; + if (i % stride != stride - 1) { + arr[i] = 0; + } else { + arr[i] = sum; + sum = 0; + } + i = i + 1; + } + return 0; +} + +int avgPooling(int arr[], int stride) { + int sum; + int i; + i = 0; + sum = 0; + int lastnum; + while (i < n) { + if (i < stride - 1) { + sum = sum + arr[i]; + } else if (i == stride - 1) { + lastnum = arr[0]; + arr[0] = sum / stride; + } else { + sum = sum + arr[i] - lastnum; + lastnum = arr[i - stride + 1]; + arr[i - stride + 1] = sum / stride; + } + i = i + 1; + } + i = n - stride + 1; + while (i < n) { + arr[i] = 0; + i = i + 1; + } + return 0; +} + +int main() { + n = 32; + int arr[32]; + int result[32]; + arr[0] = 7; + arr[1] = 23; + arr[2] = 89; + arr[3] = 26; + arr[4] = 282; + arr[5] = 254; + arr[6] = 27; + arr[7] = 5; + arr[8] = 83; + arr[9] = 273; + arr[10] = 574; + arr[11] = 905; + arr[12] = 354; + arr[13] = 657; + arr[14] = 935; + arr[15] = 264; + arr[16] = 639; + arr[17] = 459; + arr[18] = 29; + arr[19] = 68; + arr[20] = 929; + arr[21] = 756; + arr[22] = 452; + arr[23] = 279; + arr[24] = 58; + arr[25] = 87; + arr[26] = 96; + arr[27] = 36; + arr[28] = 39; + arr[29] = 28; + arr[30] = 1; + arr[31] = 290; + int t; + t = arrCopy(arr, result); + t = revert(result); + int i; + i = 0; + while (i < 32) { + t = result[i]; + putint(t); + i = i + 1; + } + t = bubblesort(result); + i = 0; + while (i < 32) { + t = result[i]; + putint(t); + i = i + 1; + } + t = getMid(result); + putint(t); + t = getMost(result); + putint(t); + + t = arrCopy(arr, result); + t = bubblesort(result); + i = 0; + while (i < 32) { + t = result[i]; + putint(t); + i = i + 1; + } + + t = arrCopy(arr, result); + t = insertsort(result); + i = 0; + while (i < 32) { + t = result[i]; + putint(t); + i = i + 1; + } + + t = arrCopy(arr, result); + i = 0; + t = 31; + t = QuickSort(result, i, t); + while (i < 32) { + t = result[i]; + putint(t); + i = i + 1; + } + + t = arrCopy(arr, result); + t = calSum(result, 4); + i = 0; + while (i < 32) { + t = result[i]; + putint(t); + i = i + 1; + } + + t = arrCopy(arr, result); + t = avgPooling(result, 3); + i = 0; + while (i < 32) { + t = result[i]; + putint(t); + i = i + 1; + } + return 0; +} diff --git a/sysy_sets/86_long_code2.out b/sysy_sets/86_long_code2.out new file mode 100755 index 0000000..a762560 --- /dev/null +++ b/sysy_sets/86_long_code2.out @@ -0,0 +1 @@ +160 diff --git a/sysy_sets/86_long_code2.sy b/sysy_sets/86_long_code2.sy new file mode 100755 index 0000000..d07b892 --- /dev/null +++ b/sysy_sets/86_long_code2.sy @@ -0,0 +1,406 @@ +int a[5][20000]; +int main() { + a[4][19999] = 1; + int ans = +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + +a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] + a[2 * 2][20000 - 1] ; + return ans; +} \ No newline at end of file diff --git a/sysy_sets/87_many_params.in b/sysy_sets/87_many_params.in new file mode 100755 index 0000000..e335d1e --- /dev/null +++ b/sysy_sets/87_many_params.in @@ -0,0 +1,16 @@ +17 +13 +80 +55 +81 +91 +95 +58 +13 +5 +63 +19 +54 +45 +67 +63 diff --git a/sysy_sets/87_many_params.out b/sysy_sets/87_many_params.out new file mode 100755 index 0000000..c50d0bf --- /dev/null +++ b/sysy_sets/87_many_params.out @@ -0,0 +1,2 @@ +331024 +0 diff --git a/sysy_sets/87_many_params.sy b/sysy_sets/87_many_params.sy new file mode 100755 index 0000000..b364c9e --- /dev/null +++ b/sysy_sets/87_many_params.sy @@ -0,0 +1,122 @@ +void sort(int arr[], int len) { + int i = 0; + while (i < len - 1) { + int j = i + 1; + while (j < len) { + if (arr[i] < arr[j]) { + int temp = arr[i]; + arr[i] = arr[j]; + arr[j] = temp; + } + j = j + 1; + } + i = i + 1; + } +} + +// attempt to fool the inliner +int param32_rec(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, + int a9, int a10, int a11, int a12, int a13, int a14, int a15, + int a16, int a17, int a18, int a19, int a20, int a21, int a22, + int a23, int a24, int a25, int a26, int a27, int a28, int a29, + int a30, int a31, int a32) { + if (a1 == 0) { + return a2; + } + else { + return param32_rec(a1 - 1, (a2 + a3) % 998244353, a4, a5, a6, a7, a8, a9, + a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, + a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, + a32, 0); + } +} + +int param32_arr(int a1[], int a2[], int a3[], int a4[], int a5[], int a6[], + int a7[], int a8[], int a9[], int a10[], int a11[], int a12[], + int a13[], int a14[], int a15[], int a16[], int a17[], + int a18[], int a19[], int a20[], int a21[], int a22[], + int a23[], int a24[], int a25[], int a26[], int a27[], + int a28[], int a29[], int a30[], int a31[], int a32[]) { + int sum = a1[0] + a1[1]; + sum = sum + a2[0] + a2[1]; + sum = sum + a3[0] + a3[1]; + sum = sum + a4[0] + a4[1]; + sum = sum + a5[0] + a5[1]; + sum = sum + a6[0] + a6[1]; + sum = sum + a7[0] + a7[1]; + sum = sum + a8[0] + a8[1]; + sum = sum + a9[0] + a9[1]; + sum = sum + a10[0] + a10[1]; + sum = sum + a11[0] + a11[1]; + sum = sum + a12[0] + a12[1]; + sum = sum + a13[0] + a13[1]; + sum = sum + a14[0] + a14[1]; + sum = sum + a15[0] + a15[1]; + sum = sum + a16[0] + a16[1]; + sum = sum + a17[0] + a17[1]; + sum = sum + a18[0] + a18[1]; + sum = sum + a19[0] + a19[1]; + sum = sum + a20[0] + a20[1]; + sum = sum + a21[0] + a21[1]; + sum = sum + a22[0] + a22[1]; + sum = sum + a23[0] + a23[1]; + sum = sum + a24[0] + a24[1]; + sum = sum + a25[0] + a25[1]; + sum = sum + a26[0] + a26[1]; + sum = sum + a27[0] + a27[1]; + sum = sum + a28[0] + a28[1]; + sum = sum + a29[0] + a29[1]; + sum = sum + a30[0] + a30[1]; + sum = sum + a31[0] + a31[1]; + sum = sum + a32[0] + a32[1]; + return sum; +} + +int param16(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, + int a9, int a10, int a11, int a12, int a13, int a14, int a15, + int a16) { + int arr[16] = {a1, a2, a3, a4, a5, a6, a7, a8, + a9, a10, a11, a12, a13, a14, a15, a16}; + sort(arr, 16); + return param32_rec(arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], + arr[7], arr[8], arr[9], arr[10], arr[11], arr[12], arr[13], + arr[14], arr[15], a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, + a11, a12, a13, a14, a15, a16); +} + +int main() { + int p16arg0 = getint(); + int p16arg1 = getint(); + int p16arg2 = getint(); + int p16arg3 = getint(); + int p16arg4 = getint(); + int p16arg5 = getint(); + int p16arg6 = getint(); + int p16arg7 = getint(); + int p16arg8 = getint(); + int p16arg9 = getint(); + int p16arg10 = getint(); + int p16arg11 = getint(); + int p16arg12 = getint(); + int p16arg13 = getint(); + int p16arg14 = getint(); + int p16arg15 = getint(); + int arr[32][2] = {{param16(p16arg0, p16arg1, p16arg2, p16arg3, p16arg4, + p16arg5, p16arg6, p16arg7, p16arg8, p16arg9, + p16arg10, p16arg11, p16arg12, p16arg13, p16arg14, + p16arg15), + 8848}}, + i = 1; + while (i < 32) { + arr[i][0] = arr[i - 1][1] - 1; + arr[i][1] = arr[i - 1][0] - 2; + i = i + 1; + } + putint(param32_arr(arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], + arr[7], arr[8], arr[9], arr[10], arr[11], arr[12], arr[13], + arr[14], arr[15], arr[16], arr[17], arr[18], arr[19], + arr[20], arr[21], arr[22], arr[23], arr[24], arr[25], + arr[26], arr[27], arr[28], arr[29], arr[30], arr[31])); + putch(10); + return 0; +} diff --git a/sysy_sets/88_many_params2.out b/sysy_sets/88_many_params2.out new file mode 100755 index 0000000..eb8735b --- /dev/null +++ b/sysy_sets/88_many_params2.out @@ -0,0 +1,4 @@ +0123000009 +9 +805 3612 2695 1778 861 3668 2751 1834 917 0 +0 diff --git a/sysy_sets/88_many_params2.sy b/sysy_sets/88_many_params2.sy new file mode 100755 index 0000000..c108de4 --- /dev/null +++ b/sysy_sets/88_many_params2.sy @@ -0,0 +1,48 @@ + +int func(int a, int b[][59], int c, int d[], int e, int f, int g[], int h, int i) +{ + int index = 0; + while (index < 10) { + putint(b[a][index]); + index = index + 1; + } + putch(10); + + putint(d[c]); + putch(10); + + while (i < 10) { + g[i] = h * 128875 % 3724; + i = i + 1; + h = h + 7; + } + + return e + f; +} + +int main() +{ + int a[61][67] = {}; + int b[53][59] = {}; + + a[17][1] = 6; + a[17][3] = 7; + a[17][4] = 4; + a[17][7] = 9; + a[17][11] = 11; + + b[6][1] = 1; + b[6][2] = 2; + b[6][3] = 3; + b[6][9] = 9; + + int ret; + ret = func(a[17][1], b, a[17][3], a[17], b[6][3], b[6][0], b[6], b[34][4], b[51][18]) * 3; + + while (ret >= 0) { + putint(b[6][ret]); putch(32); + ret = ret - 1; + } + putch(10); + return 0; +} diff --git a/sysy_sets/89_many_globals.out b/sysy_sets/89_many_globals.out new file mode 100755 index 0000000..edfa1fa --- /dev/null +++ b/sysy_sets/89_many_globals.out @@ -0,0 +1,2 @@ +2822118 +0 diff --git a/sysy_sets/89_many_globals.sy b/sysy_sets/89_many_globals.sy new file mode 100755 index 0000000..247e2fc --- /dev/null +++ b/sysy_sets/89_many_globals.sy @@ -0,0 +1,132 @@ +// Call a func with many params. + +int a0; +int a1; +int a2; +int a3; +int a4; +int a5; +int a6; +int a7; +int a8; +int a9; +int a10; +int a11; +int a12; +int a13; +int a14; +int a15; +int a16; +int a17; +int a18; +int a19; +int a20; +int a21; +int a22; +int a23; +int a24; +int a25; +int a26; +int a27; +int a28; +int a29; +int a30; +int a31; + +int a32; +int a33; +int a34; +int a35; +int a36; +int a37; +int a38; +int a39; + +int testParam8(int a0, int a1, int a2, int a3, + int a4, int a5, int a6, int a7) { + return a0 + a1 + a2 + a3 + a4 + a5 + a6 + a7; +} + +int testParam16(int a0, int a1, int a2, int a3, + int a4, int a5, int a6, int a7, + int a8, int a9, int a10, int a11, + int a12, int a13, int a14, int a15) { + return a0 + a1 + a2 - a3 - a4 - a5 - a6 - a7 + + a8 + a9 + a10 + a11 + a12 + a13 + a14 + a15; +} + +int testParam32(int a0, int a1, int a2, int a3, + int a4, int a5, int a6, int a7, + int a8, int a9, int a10, int a11, + int a12, int a13, int a14, int a15, + int a16, int a17, int a18, int a19, + int a20, int a21, int a22, int a23, + int a24, int a25, int a26, int a27, + int a28, int a29, int a30, int a31) { + return a0 + a1 + a2 + a3 + a4 + a5 + a6 + a7 + + a8 + a9 + a10 + a11 + a12 + a13 + a14 + a15 + + a16 + a17 - a18 - a19 - a20 - a21 - a22 + a23 + + a24 + a25 + a26 + a27 + a28 + a29 + a30 + a31; +} + +int main() { + a0 = 0; + a1 = 1; + a2 = 2; + a3 = 3; + a4 = 4; + a5 = 5; + a6 = 6; + a7 = 7; + a8 = 8; + a9 = 9; + a10 = 0; + a11 = 1; + a12 = 2; + a13 = 3; + a14 = 4; + a15 = 5; + a16 = 6; + a17 = 7; + a18 = 8; + a19 = 9; + a20 = 0; + a21 = 1; + a22 = 2; + a23 = 3; + a24 = 4; + a25 = 5; + a26 = 6; + a27 = 7; + a28 = 8; + a29 = 9; + a30 = 0; + a31 = 1; + + a32 = 4; + a33 = 5; + a34 = 6; + a35 = 7; + a36 = 8; + a37 = 9; + a38 = 0; + a39 = 1; + + a0 = testParam8(a0, a1, a2, a3, a4, a5, a6, a7); + putint(a0); + a0 = testParam16(a32, a33, a34, a35, + a36, a37, a38, a39, + a8, a9, a10, a11, + a12, a13, a14, a15); + putint(a0); + a0 = testParam32(a0, a1, a2, a3, + a4, a5, a6, a7, + a8, a9, a10, a11, + a12, a13, a14, a15, + a16, a17, a18, a19, + a20, a21, a22, a23, + a24, a25, a26, a27, + a28, a29, a30, a31); + putint(a0); + return 0; +} diff --git a/sysy_sets/90_many_locals.out b/sysy_sets/90_many_locals.out new file mode 100755 index 0000000..73f526a --- /dev/null +++ b/sysy_sets/90_many_locals.out @@ -0,0 +1,2 @@ +254 +0 diff --git a/sysy_sets/90_many_locals.sy b/sysy_sets/90_many_locals.sy new file mode 100755 index 0000000..fd0b4c7 --- /dev/null +++ b/sysy_sets/90_many_locals.sy @@ -0,0 +1,39 @@ + +int foo() +{ + int arr[16] = {0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3}; + + int a = 3, b = 7, c = 5, d = 6, e = 1, f = 0, g = 3, h = 5, + i = 4, j = 2, k = 7, l = 9, m = 8, n = 1, o = 4, p = 6; + + int sum1 = a + b + c + d + e + f + g + h; + int sum2 = i + j + k + l + m + n + o + p; + + return sum1 + sum2 + arr[a]; +} + +int main() +{ + int a = 3, b = 7, c = 5, d = 6, e = 1, f = 0, g = 3, h = 5, + i = 4, j = 2, k = 7, l = 9, m = 8, n = 1, o = 4, p = 6; + + int sum1 = a + b + c + d + e + f + g + h; + int sum2 = i + j + k + l + m + n + o + p; + + sum1 = sum1 + foo(); + + int q = 4, r = 7, s = 2, t = 5, u = 8, v = 0, w = 6, x = 3; + + sum2 = sum2 + foo(); + + a = i; b = j; c = k; d = l; + e = m; f = n; g = o; h = p; + + int sum3 = q + r + s + t + u + v + w + x; + + int sum = sum1 + sum2 + sum3; + + putint(sum); + putch(10); + return 0; +} diff --git a/sysy_sets/91_many_locals2.in b/sysy_sets/91_many_locals2.in new file mode 100755 index 0000000..7ed6ff8 --- /dev/null +++ b/sysy_sets/91_many_locals2.in @@ -0,0 +1 @@ +5 diff --git a/sysy_sets/91_many_locals2.out b/sysy_sets/91_many_locals2.out new file mode 100755 index 0000000..6b786e4 --- /dev/null +++ b/sysy_sets/91_many_locals2.out @@ -0,0 +1,3 @@ +01234567891011121314151617181920212223242526272829 +6 +25 diff --git a/sysy_sets/91_many_locals2.sy b/sysy_sets/91_many_locals2.sy new file mode 100755 index 0000000..34a37d1 --- /dev/null +++ b/sysy_sets/91_many_locals2.sy @@ -0,0 +1,85 @@ +//sample:input n number, sort them and print them; + int n; + int main() + { + int a0; + int a1; + int a2; + int a3; + int a4; + int a5; + int a6; + int a7; + int a8; + int a9; + int a10; + int a11; + int a12; + int a13; + int a14; + int a15; + int a16; + int a17; + int a18; + int a19; + int a20; + int a21; + int a22; + int a23; + int a24; + int a25; + int a26; + int a27; + int a28; + int a29; + int b; + b = getint(); + while(b == 5){ + b = b + 1; + } + a0=0; + a1=a0+1; + a2=a1+1; + a3=a2+1; + a4=a3+1; + a5=a4+1; + a6=a5+1; + a7=a6+1; + a8=a7+1; + a9=a8+1; + a10=a9+1; + a11=a10+1; + a12=a11+1; + a13=a12+1; + a14=a13+1; + a15=a14+1; + a16=a15+1; + a17=a16+1; + a18=a17+1; + a19=a18+1; + a20=a19+1; + a21=a20+1; + a22=a21+1; + a23=a22+1; + a24=a23+1; + a25=a24+1; + a26=a25+1; + a27=a26+1; + a28=a27+1; + a29=a28+1; + int t; + putint(a0);putint(a1);putint(a2);putint(a3); + putint(a4);putint(a5);putint(a6);putint(a7); + putint(a8);putint(a9);putint(a10);putint(a11); + putint(a12);putint(a13);putint(a14);putint(a15); + putint(a16);putint(a17);putint(a18);putint(a19); + putint(a20);putint(a21);putint(a22);putint(a23); + putint(a24);putint(a25);putint(a26);putint(a27); + putint(a28);putint(a29); + int newline; + newline = 10; + putch(newline); + putint(b); + putch(newline); + return a25; + } diff --git a/sysy_sets/92_register_alloc.in b/sysy_sets/92_register_alloc.in new file mode 100755 index 0000000..63db1c6 --- /dev/null +++ b/sysy_sets/92_register_alloc.in @@ -0,0 +1,2 @@ +1 +1 2 3 4 diff --git a/sysy_sets/92_register_alloc.out b/sysy_sets/92_register_alloc.out new file mode 100755 index 0000000..ec6d89a --- /dev/null +++ b/sysy_sets/92_register_alloc.out @@ -0,0 +1,2 @@ +194 +194 diff --git a/sysy_sets/92_register_alloc.sy b/sysy_sets/92_register_alloc.sy new file mode 100755 index 0000000..54ca8d8 --- /dev/null +++ b/sysy_sets/92_register_alloc.sy @@ -0,0 +1,94 @@ +int a1 = 1; +int a2 = 2; +int a3 = 3; +int a4 = 4; +int a5 = 5; +int a6 = 6; +int a7 = 7; +int a8 = 8; +int a9 = 9; +int a10 = 10; +int a11 = 11; +int a12 = 12; +int a13 = 13; +int a14 = 14; +int a15 = 15; +int a16 = 16; +int a17 = 1; +int a18 = 2; +int a19 = 3; +int a20 = 4; +int a21 = 5; +int a22 = 6; +int a23 = 7; +int a24 = 8; +int a25 = 9; +int a26 = 10; +int a27 = 11; +int a28 = 12; +int a29 = 13; +int a30 = 14; +int a31 = 15; +int a32 = 16; + +int func(int a, int b){ + int i; + i = a + b; + + int c1;int c2;int c3;int c4; + int d1;int d2;int d3;int d4; + int e1;int e2;int e3;int e4; + int f1;int f2;int f3;int f4; + int g1;int g2;int g3;int g4; + int h1;int h2;int h3;int h4; + int i1;int i2;int i3;int i4; + int j1;int j2;int j3;int j4; + int k1;int k2;int k3;int k4; + c1 = getint();c2 = getint();c3 = getint();c4 = getint(); + d1 = 1 + c1 + a1;d2 = 2 + c2 + a2;d3 = 3 + c3 + a3;d4 = 4 + c4 + a4; + e1 = 1 + d1 + a5;e2 = 2 + d2 + a6;e3 = 3 + d3 + a7;e4 = 4 + d4 + a8; + f1 = 1 + e1 + a9;f2 = 2 + e2 + a10;f3 = 3 + e3 + a11;f4 = 4 + e4 + a12; + g1 = 1 + f1 + a13;g2 = 2 + f2 + a14;g3 = 3 + f3 + a15;g4 = 4 + f4 + a16; + h1 = 1 + g1 + a17;h2 = 2 + g2 + a18;h3 = 3 + g3 + a19;h4 = 4 + g4 + a20; + i1 = 1 + h1 + a21;i2 = 2 + h2 + a22;i3 = 3 + h3 + a23;i4 = 4 + h4 + a24; + j1 = 1 + i1 + a25;j2 = 2 + i2 + a26;j3 = 3 + i3 + a27;j4 = 4 + i4 + a28; + k1 = 1 + j1 + a29;k2 = 2 + j2 + a30;k3 = 3 + j3 + a31;k4 = 4 + j4 + a32; + + i = a - b + 10; + k1 = 1 + j1 + a29;k2 = 2 + j2 + a30;k3 = 3 + j3 + a31;k4 = 4 + j4 + a32; + j1 = 1 + i1 + a25;j2 = 2 + i2 + a26;j3 = 3 + i3 + a27;j4 = 4 + i4 + a28; + i1 = 1 + h1 + a21;i2 = 2 + h2 + a22;i3 = 3 + h3 + a23;i4 = 4 + h4 + a24; + h1 = 1 + g1 + a17;h2 = 2 + g2 + a18;h3 = 3 + g3 + a19;h4 = 4 + g4 + a20; + g1 = 1 + f1 + a13;g2 = 2 + f2 + a14;g3 = 3 + f3 + a15;g4 = 4 + f4 + a16; + f1 = 1 + e1 + a9;f2 = 2 + e2 + a10;f3 = 3 + e3 + a11;f4 = 4 + e4 + a12; + e1 = 1 + d1 + a5;e2 = 2 + d2 + a6;e3 = 3 + d3 + a7;e4 = 4 + d4 + a8; + d1 = 1 + c1 + a1;d2 = 2 + c2 + a2;d3 = 3 + c3 + a3;d4 = 4 + c4 + a4; + d1 = 1 + c1 + a1;d2 = 2 + c2 + a2;d3 = 3 + c3 + a3;d4 = 4 + c4 + a4; + return i + c1 + c2 + c3 + c4 + - d1 - d2 - d3 - d4 + + e1 + e2 + e3 + e4 + - f1 - f2 - f3 - f4 + + g1 + g2 + g3 + g4 + - h1 - h2 - h3 - h4 + + i1 + i2 + i3 + i4 + - j1 - j2 - j3 - j4 + + k1 + k2 + k3 + k4 + + a1 - a2 + a3 - a4 + + a5 - a6 + a7 - a8 + + a9 - a10 + a11 - a12 + + a13 - a14 + a15 - a16 + + a17 - a18 + a19 - a20 + + a21 - a22 + a23 - a24 + + a25 - a26 + a27 - a28 + + a29 - a30 + a31 - a32; +} + +int main(){ + int a; + int b; + a = getint(); + b = a + 2 * 9; + a = func(a, b); + putint(a); + return a; +} \ No newline at end of file diff --git a/sysy_sets/93_nested_calls.in b/sysy_sets/93_nested_calls.in new file mode 100755 index 0000000..0cbf79a --- /dev/null +++ b/sysy_sets/93_nested_calls.in @@ -0,0 +1,3 @@ +1 2 3 4 5 +6 7 8 9 10 +11 12 13 14 diff --git a/sysy_sets/93_nested_calls.out b/sysy_sets/93_nested_calls.out new file mode 100755 index 0000000..cb1a40d --- /dev/null +++ b/sysy_sets/93_nested_calls.out @@ -0,0 +1 @@ +250 diff --git a/sysy_sets/93_nested_calls.sy b/sysy_sets/93_nested_calls.sy new file mode 100755 index 0000000..2d24b77 --- /dev/null +++ b/sysy_sets/93_nested_calls.sy @@ -0,0 +1,95 @@ +int func1(int x, int y, int z) { + if (z == 0) { + return x * y; + } + else { + return func1(x, y - z, 0); + } +} + +int func2(int x, int y) { + if (y) { + return func2(x % y, 0); + } + else { + return x; + } +} + +int func3(int x, int y) { + if (y == 0) { + return x + 1; + } + else { + return func3(x + y, 0); + } +} + +int func4(int x, int y, int z) { + if (x) { + return y; + } + else { + return z; + } +} + +int func5(int x) { + return -x; +} + +int func6(int x, int y) { + if (x && y) { + return 1; + } + else { + return 0; + } +} + +int func7(int x) { + if (!x) { + return 1; + } + else { + return 0; + } +} + +int main() { + int i1 = getint(), i2 = getint(), i3 = getint(), i4 = getint(); + int arr[10]; + int i = 0; + while (i < 10) { + arr[i] = getint(); + i = i + 1; + } + int a = func1( + // this + func2( + // is + func1( + // comment + func3(func4(func5(func3(func2(func6(func7(i1), func5(i2)), i3), + // this + i4)), + // is + arr[0], + // function + func1(func2(func3(func4(func5(arr[1]), + // call + func6(arr[2], func7(arr[3])), + func2(arr[4], func7(arr[5]))), + arr[6]), + arr[7]), + func3(arr[8], func7(arr[9])), i1)), + func2(i2, func3(func7(i3), i4))), + arr[0], arr[1]), + arr[2]), + arr[3], + func3(func2(func1(func2(func3(arr[4], func5(arr[5])), func5(arr[6])), + arr[7], func7(arr[8])), + func5(arr[9])), + i1)); + return a; +} diff --git a/sysy_sets/94_nested_loops.in b/sysy_sets/94_nested_loops.in new file mode 100755 index 0000000..a7aba5b --- /dev/null +++ b/sysy_sets/94_nested_loops.in @@ -0,0 +1,2 @@ +12 10 +2 2 3 2 3 2 2 diff --git a/sysy_sets/94_nested_loops.out b/sysy_sets/94_nested_loops.out new file mode 100755 index 0000000..e522732 --- /dev/null +++ b/sysy_sets/94_nested_loops.out @@ -0,0 +1 @@ +38 diff --git a/sysy_sets/94_nested_loops.sy b/sysy_sets/94_nested_loops.sy new file mode 100755 index 0000000..f4b5e30 --- /dev/null +++ b/sysy_sets/94_nested_loops.sy @@ -0,0 +1,124 @@ +int arr1[10][2][3][4][5][6][2]; +int arr2[10][2][3][2][4][8][7]; + +void loop1(int x, int y) { + int a, b, c, d, e, f, g; + a = 0; + while (a < x && a < y) { + b = 0; + while (b < 2) { + c = 0; + while (c < 3) { + d = 0; + while (d < 4) { + e = 0; + while (e < 5) { + f = 0; + while (f < 6) { + g = 0; + while (g < 2) { + arr1[a][b][c][d][e][f][g] = a + b + c + d + e + f + g + x + y; + g = g + 1; + } + f = f + 1; + } + e = e + 1; + } + d = d + 1; + } + c = c + 1; + } + b = b + 1; + } + a = a + 1; + } +} + +void loop2() { + int a, b, c, d, e, f, g; + a = 0; + while (a < 10) { + b = 0; + while (b < 2) { + c = 0; + while (c < 3) { + d = 0; + while (d < 2) { + e = 0; + while (e < 4) { + f = 0; + while (f < 8) { + g = 0; + while (g < 7) { + arr2[a][b][c][d][e][f][g] = a + b + d + g; + g = g + 1; + } + f = f + 1; + } + e = e + 1; + } + d = d + 1; + } + c = c + 1; + } + b = b + 1; + } + a = a + 1; + } +} + +int loop3(int h, int i, int j, int k, int l, int m, int n) { + int a, b, c, d, e, f, g; + int ans = 0; + a = 0; + while (a < 10) { + b = 0; + while (b < 100) { + c = 0; + while (c < 1000) { + d = 0; + while (d < 10000) { + e = 0; + while (e < 100000) { + f = 0; + while (f < 1000000) { + g = 0; + while (g < 10000000) { + ans = ans % 817 + arr1[a][b][c][d][e][f][g] + arr2[a][b][c][d][e][f][g]; + g = g + 1; + if (g >= n) break; + } + f = f + 1; + if (f >= m) break; + } + e = e + 1; + if (e >= l) break; + } + d = d + 1; + if (d >= k) break; + } + c = c + 1; + if (c >= j) break; + } + b = b + 1; + if (b >= i) break; + } + a = a + 1; + if (a >= h) break; + } + return ans; +} + +int main() { + int x = getint(); + int y = getint(); + int h = getint(); + int i = getint(), j = getint(); + int k = getint(); + int l = getint(); + int m = getint(); + int n = getint(); + loop1(x, y); + loop2(); + return loop3(h, i, j, k, l, m, n); +} diff --git a/sysy_sets/95_float.in b/sysy_sets/95_float.in new file mode 100755 index 0000000..71d6795 --- /dev/null +++ b/sysy_sets/95_float.in @@ -0,0 +1,13 @@ +10 +0x1.999999999999ap-4 0x1.999999999999ap-3 0x1.3333333333333p-2 0x1.999999999999ap-2 0x1.0000000000000p-1 +0x1.3333333333333p-1 0x1.6666666666666p-1 0x1.999999999999ap-1 0x1.ccccccccccccdp-1 0x1.0000000000000p+0 +0x1.199999999999ap+0 +0x1.199999999999ap+1 +0x1.a666666666666p+1 +0x1.199999999999ap+2 +0x1.6000000000000p+2 +0x1.a666666666666p+2 +0x1.ecccccccccccdp+2 +0x1.199999999999ap+3 +0x1.3cccccccccccdp+3 +0x1.4333333333333p+3 diff --git a/sysy_sets/95_float.out b/sysy_sets/95_float.out new file mode 100755 index 0000000..93869ef --- /dev/null +++ b/sysy_sets/95_float.out @@ -0,0 +1,19 @@ +ok +ok +ok +ok +ok +ok +ok +ok +0x1.e691e6p+1 3 +0x1.e691e6p+3 12 +0x1.11b21p+5 28 +0x1.e691e6p+5 50 +0x1.7c21fcp+6 78 +0x1.11b21p+7 113 +0x1.7487b2p+7 153 +0x1.e691e6p+7 201 +0x1.33e85p+8 254 +10: 0x1.333334p+0 0x1.333334p+1 0x1.ccccccp+1 0x1.333334p+2 0x1.8p+2 0x1.ccccccp+2 0x1.0cccccp+3 0x1.333334p+3 0x1.599998p+3 0x1p+0 +0 diff --git a/sysy_sets/95_float.sy b/sysy_sets/95_float.sy new file mode 100755 index 0000000..3372dde --- /dev/null +++ b/sysy_sets/95_float.sy @@ -0,0 +1,98 @@ +// float global constants +const float RADIUS = 5.5, PI = 03.141592653589793, EPS = 1e-6; + +// hexadecimal float constant +const float PI_HEX = 0x1.921fb6p+1, HEX2 = 0x.AP-3; + +// float constant evaluation +const float FACT = -.33E+5, EVAL1 = PI * RADIUS * RADIUS, EVAL2 = 2 * PI_HEX * RADIUS, EVAL3 = PI * 2 * RADIUS; + +// float constant implicit conversion +const float CONV1 = 233, CONV2 = 0xfff; +const int MAX = 1e9, TWO = 2.9, THREE = 3.2, FIVE = TWO + THREE; + +// float -> float function +float float_abs(float x) { + if (x < 0) return -x; + return x; +} + +// int -> float function & float/int expression +float circle_area(int radius) { + return (PI * radius * radius + (radius * radius) * PI) / 2; +} + +// float -> float -> int function & float/int expression +int float_eq(float a, float b) { + if (float_abs(a - b) < EPS) { + return 1 * 2. / 2; + } else { + return 0; + } +} + +void error() { + putch(101); + putch(114); + putch(114); + putch(111); + putch(114); + putch(10); +} + +void ok() { + putch(111); + putch(107); + putch(10); +} + +void assert(int cond) { + if (!cond) { + error(); + } else { + ok(); + } +} + +void assert_not(int cond) { + if (cond) { + error(); + } else { + ok(); + } +} + +int main() { + assert_not(float_eq(HEX2, FACT)); + assert_not(float_eq(EVAL1, EVAL2)); + assert(float_eq(EVAL2, EVAL3)); + assert(float_eq(circle_area(RADIUS) /* f->i implicit conversion */, + circle_area(FIVE))); + assert_not(float_eq(CONV1, CONV2) /* i->f implicit conversion */); + + // float conditional expressions + if (1.5) ok(); + if (!!3.3) ok(); + if (.0 && 3) error(); + if (0 || 0.3) ok(); + + // float array & I/O functions + int i = 1, p = 0; + float arr[10] = {1., 2}; + int len = getfarray(arr); + while (i < MAX) { + float input = getfloat(); + float area = PI * input * input, area_trunc = circle_area(input); + arr[p] = arr[p] + input; + + putfloat(area); + putch(32); + putint(area_trunc); // f->i implicit conversion + putch(10); + + i = i * - -1e1; + p = p + 1; + } + putfarray(len, arr); + return 0; +} diff --git a/sysy_sets/96_matrix_add.out b/sysy_sets/96_matrix_add.out new file mode 100755 index 0000000..28b5f4b --- /dev/null +++ b/sysy_sets/96_matrix_add.out @@ -0,0 +1,4 @@ +024 +024 +024 +0 diff --git a/sysy_sets/96_matrix_add.sy b/sysy_sets/96_matrix_add.sy new file mode 100755 index 0000000..b65928b --- /dev/null +++ b/sysy_sets/96_matrix_add.sy @@ -0,0 +1,70 @@ +int M; +int L; +int N; + + +int add(float a0[],float a1[], float a2[],float b0[],float b1[],float b2[],float c0[],float c1[],float c2[]) +{ + int i; + i=0; + while(i