From 58e1e9c62caff55087f83caf4db4a56cc78497ef Mon Sep 17 00:00:00 2001 From: jackfiled Date: Tue, 27 Aug 2024 18:13:31 +0800 Subject: [PATCH] add: sysy functional test sets. --- sysy_sets/00_main.out | 1 + sysy_sets/00_main.sy | 3 + sysy_sets/01_var_defn2.out | 1 + sysy_sets/01_var_defn2.sy | 8 + sysy_sets/02_var_defn3.out | 1 + sysy_sets/02_var_defn3.sy | 8 + sysy_sets/03_arr_defn2.out | 1 + sysy_sets/03_arr_defn2.sy | 4 + sysy_sets/04_arr_defn3.out | 1 + sysy_sets/04_arr_defn3.sy | 9 + sysy_sets/05_arr_defn4.out | 1 + sysy_sets/05_arr_defn4.sy | 9 + sysy_sets/06_const_var_defn2.out | 1 + sysy_sets/06_const_var_defn2.sy | 6 + sysy_sets/07_const_var_defn3.out | 1 + sysy_sets/07_const_var_defn3.sy | 5 + sysy_sets/08_const_array_defn.out | 1 + sysy_sets/08_const_array_defn.sy | 5 + sysy_sets/09_func_defn.out | 1 + sysy_sets/09_func_defn.sy | 11 + sysy_sets/10_var_defn_func.out | 1 + sysy_sets/10_var_defn_func.sy | 8 + sysy_sets/11_add2.out | 1 + sysy_sets/11_add2.sy | 7 + sysy_sets/12_addc.out | 1 + sysy_sets/12_addc.sy | 5 + sysy_sets/13_sub2.out | 1 + sysy_sets/13_sub2.sy | 7 + sysy_sets/14_subc.out | 1 + sysy_sets/14_subc.sy | 6 + sysy_sets/15_mul.out | 1 + sysy_sets/15_mul.sy | 7 + sysy_sets/16_mulc.out | 1 + sysy_sets/16_mulc.sy | 5 + sysy_sets/17_div.out | 1 + sysy_sets/17_div.sy | 7 + sysy_sets/18_divc.out | 1 + sysy_sets/18_divc.sy | 5 + sysy_sets/19_mod.out | 1 + sysy_sets/19_mod.sy | 6 + sysy_sets/20_rem.out | 1 + sysy_sets/20_rem.sy | 6 + sysy_sets/21_if_test2.out | 2 + sysy_sets/21_if_test2.sy | 25 + sysy_sets/22_if_test3.out | 1 + sysy_sets/22_if_test3.sy | 18 + sysy_sets/23_if_test4.out | 1 + sysy_sets/23_if_test4.sy | 18 + sysy_sets/24_if_test5.out | 1 + sysy_sets/24_if_test5.sy | 18 + sysy_sets/25_while_if.out | 2 + sysy_sets/25_while_if.sy | 31 + sysy_sets/26_while_test1.out | 1 + sysy_sets/26_while_test1.sy | 18 + sysy_sets/27_while_test2.out | 1 + sysy_sets/27_while_test2.sy | 31 + sysy_sets/28_while_test3.out | 1 + sysy_sets/28_while_test3.sy | 55 + sysy_sets/29_break.out | 1 + sysy_sets/29_break.sy | 15 + sysy_sets/30_continue.out | 1 + sysy_sets/30_continue.sy | 16 + sysy_sets/31_while_if_test1.out | 1 + sysy_sets/31_while_if_test1.sy | 25 + sysy_sets/32_while_if_test2.out | 1 + sysy_sets/32_while_if_test2.sy | 23 + sysy_sets/33_while_if_test3.out | 1 + sysy_sets/33_while_if_test3.sy | 25 + sysy_sets/34_arr_expr_len.out | 1 + sysy_sets/34_arr_expr_len.sy | 11 + sysy_sets/35_op_priority1.out | 1 + sysy_sets/35_op_priority1.sy | 9 + sysy_sets/36_op_priority2.out | 1 + sysy_sets/36_op_priority2.sy | 9 + sysy_sets/37_op_priority3.out | 1 + sysy_sets/37_op_priority3.sy | 7 + sysy_sets/38_op_priority4.in | 1 + sysy_sets/38_op_priority4.out | 1 + sysy_sets/38_op_priority4.sy | 19 + sysy_sets/39_op_priority5.out | 2 + sysy_sets/39_op_priority5.sy | 15 + sysy_sets/40_unary_op.out | 1 + sysy_sets/40_unary_op.sy | 11 + sysy_sets/41_unary_op2.out | 2 + sysy_sets/41_unary_op2.sy | 14 + sysy_sets/42_empty_stmt.out | 1 + sysy_sets/42_empty_stmt.sy | 5 + sysy_sets/43_logi_assign.in | 1 + sysy_sets/43_logi_assign.out | 1 + sysy_sets/43_logi_assign.sy | 15 + sysy_sets/44_stmt_expr.out | 2 + sysy_sets/44_stmt_expr.sy | 13 + sysy_sets/45_comment1.out | 1 + sysy_sets/45_comment1.sy | 12 + sysy_sets/46_hex_defn.out | 1 + sysy_sets/46_hex_defn.sy | 6 + sysy_sets/47_hex_oct_add.out | 1 + sysy_sets/47_hex_oct_add.sy | 7 + sysy_sets/48_assign_complex_expr.out | 2 + sysy_sets/48_assign_complex_expr.sy | 18 + sysy_sets/49_if_complex_expr.out | 2 + sysy_sets/49_if_complex_expr.sy | 21 + sysy_sets/50_short_circuit.in | 4 + sysy_sets/50_short_circuit.out | 2 + sysy_sets/50_short_circuit.sy | 21 + sysy_sets/51_short_circuit3.out | 5 + sysy_sets/51_short_circuit3.sy | 44 + sysy_sets/52_scope.out | 2 + sysy_sets/52_scope.sy | 27 + sysy_sets/53_scope2.out | 2 + sysy_sets/53_scope2.sy | 26 + sysy_sets/54_hidden_var.out | 6 + sysy_sets/54_hidden_var.sy | 54 + sysy_sets/55_sort_test1.out | 11 + sysy_sets/55_sort_test1.sy | 41 + sysy_sets/56_sort_test2.out | 11 + sysy_sets/56_sort_test2.sy | 39 + sysy_sets/57_sort_test3.out | 11 + sysy_sets/57_sort_test3.sy | 66 ++ sysy_sets/58_sort_test4.out | 11 + sysy_sets/58_sort_test4.sy | 49 + sysy_sets/59_sort_test5.out | 11 + sysy_sets/59_sort_test5.sy | 65 ++ sysy_sets/60_sort_test6.out | 11 + sysy_sets/60_sort_test6.sy | 53 + sysy_sets/61_sort_test7.in | 11 + sysy_sets/61_sort_test7.out | 2 + sysy_sets/61_sort_test7.sy | 47 + sysy_sets/62_percolation.in | 10 + sysy_sets/62_percolation.out | 2 + sysy_sets/62_percolation.sy | 82 ++ sysy_sets/63_big_int_mul.out | 2 + sysy_sets/63_big_int_mul.sy | 65 ++ sysy_sets/64_calculator.in | 1 + sysy_sets/64_calculator.out | 2 + sysy_sets/64_calculator.sy | 184 ++++ sysy_sets/65_color.in | 2 + sysy_sets/65_color.out | 2 + sysy_sets/65_color.sy | 69 ++ sysy_sets/66_exgcd.out | 2 + sysy_sets/66_exgcd.sy | 22 + sysy_sets/67_reverse_output.in | 200 ++++ sysy_sets/67_reverse_output.out | 2 + sysy_sets/67_reverse_output.sy | 18 + sysy_sets/68_brainfk.in | 2 + sysy_sets/68_brainfk.out | 2 + sysy_sets/68_brainfk.sy | 73 ++ sysy_sets/69_expr_eval.in | 6 + sysy_sets/69_expr_eval.out | 8 + sysy_sets/69_expr_eval.sy | 145 +++ sysy_sets/70_dijkstra.in | 10 + sysy_sets/70_dijkstra.out | 2 + sysy_sets/70_dijkstra.sy | 82 ++ sysy_sets/71_full_conn.in | 37 + sysy_sets/71_full_conn.out | 7 + sysy_sets/71_full_conn.sy | 50 + sysy_sets/72_hanoi.in | 5 + sysy_sets/72_hanoi.out | 5 + sysy_sets/72_hanoi.sy | 27 + sysy_sets/73_int_io.in | 14 + sysy_sets/73_int_io.out | 6 + sysy_sets/73_int_io.sy | 52 + sysy_sets/74_kmp.in | 2 + sysy_sets/74_kmp.out | 2 + sysy_sets/74_kmp.sy | 62 ++ sysy_sets/75_max_flow.in | 12 + sysy_sets/75_max_flow.out | 2 + sysy_sets/75_max_flow.sy | 96 ++ sysy_sets/76_n_queens.in | 2 + sysy_sets/76_n_queens.out | 108 ++ sysy_sets/76_n_queens.sy | 49 + sysy_sets/77_substr.out | 3 + sysy_sets/77_substr.sy | 58 ++ sysy_sets/78_side_effect.out | 11 + sysy_sets/78_side_effect.sy | 29 + sysy_sets/79_var_name.out | 19 + sysy_sets/79_var_name.sy | 14 + sysy_sets/80_chaos_token.out | 29 + sysy_sets/80_chaos_token.sy | 201 ++++ sysy_sets/81_skip_spaces.in | 3 + sysy_sets/81_skip_spaces.out | 1 + sysy_sets/81_skip_spaces.sy | 22 + sysy_sets/82_long_func.out | 17 + sysy_sets/82_long_func.sy | 1382 ++++++++++++++++++++++++++ sysy_sets/83_long_array.out | 2 + sysy_sets/83_long_array.sy | 61 ++ sysy_sets/84_long_array2.out | 2 + sysy_sets/84_long_array2.sy | 19 + sysy_sets/85_long_code.out | 2 + sysy_sets/85_long_code.sy | 303 ++++++ sysy_sets/86_long_code2.out | 1 + sysy_sets/86_long_code2.sy | 406 ++++++++ sysy_sets/87_many_params.in | 16 + sysy_sets/87_many_params.out | 2 + sysy_sets/87_many_params.sy | 122 +++ sysy_sets/88_many_params2.out | 4 + sysy_sets/88_many_params2.sy | 48 + sysy_sets/89_many_globals.out | 2 + sysy_sets/89_many_globals.sy | 132 +++ sysy_sets/90_many_locals.out | 2 + sysy_sets/90_many_locals.sy | 39 + sysy_sets/91_many_locals2.in | 1 + sysy_sets/91_many_locals2.out | 3 + sysy_sets/91_many_locals2.sy | 85 ++ sysy_sets/92_register_alloc.in | 2 + sysy_sets/92_register_alloc.out | 2 + sysy_sets/92_register_alloc.sy | 94 ++ sysy_sets/93_nested_calls.in | 3 + sysy_sets/93_nested_calls.out | 1 + sysy_sets/93_nested_calls.sy | 95 ++ sysy_sets/94_nested_loops.in | 2 + sysy_sets/94_nested_loops.out | 1 + sysy_sets/94_nested_loops.sy | 124 +++ sysy_sets/95_float.in | 13 + sysy_sets/95_float.out | 19 + sysy_sets/95_float.sy | 98 ++ sysy_sets/96_matrix_add.out | 4 + sysy_sets/96_matrix_add.sy | 70 ++ sysy_sets/97_matrix_sub.out | 4 + sysy_sets/97_matrix_sub.sy | 72 ++ sysy_sets/98_matrix_mul.out | 4 + sysy_sets/98_matrix_mul.sy | 74 ++ sysy_sets/99_matrix_tran.out | 4 + sysy_sets/99_matrix_tran.sy | 74 ++ 224 files changed, 6672 insertions(+) create mode 100755 sysy_sets/00_main.out create mode 100755 sysy_sets/00_main.sy create mode 100755 sysy_sets/01_var_defn2.out create mode 100755 sysy_sets/01_var_defn2.sy create mode 100755 sysy_sets/02_var_defn3.out create mode 100755 sysy_sets/02_var_defn3.sy create mode 100755 sysy_sets/03_arr_defn2.out create mode 100755 sysy_sets/03_arr_defn2.sy create mode 100755 sysy_sets/04_arr_defn3.out create mode 100755 sysy_sets/04_arr_defn3.sy create mode 100755 sysy_sets/05_arr_defn4.out create mode 100755 sysy_sets/05_arr_defn4.sy create mode 100755 sysy_sets/06_const_var_defn2.out create mode 100755 sysy_sets/06_const_var_defn2.sy create mode 100755 sysy_sets/07_const_var_defn3.out create mode 100755 sysy_sets/07_const_var_defn3.sy create mode 100755 sysy_sets/08_const_array_defn.out create mode 100755 sysy_sets/08_const_array_defn.sy create mode 100755 sysy_sets/09_func_defn.out create mode 100755 sysy_sets/09_func_defn.sy create mode 100755 sysy_sets/10_var_defn_func.out create mode 100755 sysy_sets/10_var_defn_func.sy create mode 100755 sysy_sets/11_add2.out create mode 100755 sysy_sets/11_add2.sy create mode 100755 sysy_sets/12_addc.out create mode 100755 sysy_sets/12_addc.sy create mode 100755 sysy_sets/13_sub2.out create mode 100755 sysy_sets/13_sub2.sy create mode 100755 sysy_sets/14_subc.out create mode 100755 sysy_sets/14_subc.sy create mode 100755 sysy_sets/15_mul.out create mode 100755 sysy_sets/15_mul.sy create mode 100755 sysy_sets/16_mulc.out create mode 100755 sysy_sets/16_mulc.sy create mode 100755 sysy_sets/17_div.out create mode 100755 sysy_sets/17_div.sy create mode 100755 sysy_sets/18_divc.out create mode 100755 sysy_sets/18_divc.sy create mode 100755 sysy_sets/19_mod.out create mode 100755 sysy_sets/19_mod.sy create mode 100755 sysy_sets/20_rem.out create mode 100755 sysy_sets/20_rem.sy create mode 100755 sysy_sets/21_if_test2.out create mode 100755 sysy_sets/21_if_test2.sy create mode 100755 sysy_sets/22_if_test3.out create mode 100755 sysy_sets/22_if_test3.sy create mode 100755 sysy_sets/23_if_test4.out create mode 100755 sysy_sets/23_if_test4.sy create mode 100755 sysy_sets/24_if_test5.out create mode 100755 sysy_sets/24_if_test5.sy create mode 100755 sysy_sets/25_while_if.out create mode 100755 sysy_sets/25_while_if.sy create mode 100755 sysy_sets/26_while_test1.out create mode 100755 sysy_sets/26_while_test1.sy create mode 100755 sysy_sets/27_while_test2.out create mode 100755 sysy_sets/27_while_test2.sy create mode 100755 sysy_sets/28_while_test3.out create mode 100755 sysy_sets/28_while_test3.sy create mode 100755 sysy_sets/29_break.out create mode 100755 sysy_sets/29_break.sy create mode 100755 sysy_sets/30_continue.out create mode 100755 sysy_sets/30_continue.sy create mode 100755 sysy_sets/31_while_if_test1.out create mode 100755 sysy_sets/31_while_if_test1.sy create mode 100755 sysy_sets/32_while_if_test2.out create mode 100755 sysy_sets/32_while_if_test2.sy create mode 100755 sysy_sets/33_while_if_test3.out create mode 100755 sysy_sets/33_while_if_test3.sy create mode 100755 sysy_sets/34_arr_expr_len.out create mode 100755 sysy_sets/34_arr_expr_len.sy create mode 100755 sysy_sets/35_op_priority1.out create mode 100755 sysy_sets/35_op_priority1.sy create mode 100755 sysy_sets/36_op_priority2.out create mode 100755 sysy_sets/36_op_priority2.sy create mode 100755 sysy_sets/37_op_priority3.out create mode 100755 sysy_sets/37_op_priority3.sy create mode 100755 sysy_sets/38_op_priority4.in create mode 100755 sysy_sets/38_op_priority4.out create mode 100755 sysy_sets/38_op_priority4.sy create mode 100755 sysy_sets/39_op_priority5.out create mode 100755 sysy_sets/39_op_priority5.sy create mode 100755 sysy_sets/40_unary_op.out create mode 100755 sysy_sets/40_unary_op.sy create mode 100755 sysy_sets/41_unary_op2.out create mode 100755 sysy_sets/41_unary_op2.sy create mode 100755 sysy_sets/42_empty_stmt.out create mode 100755 sysy_sets/42_empty_stmt.sy create mode 100755 sysy_sets/43_logi_assign.in create mode 100755 sysy_sets/43_logi_assign.out create mode 100755 sysy_sets/43_logi_assign.sy create mode 100755 sysy_sets/44_stmt_expr.out create mode 100755 sysy_sets/44_stmt_expr.sy create mode 100755 sysy_sets/45_comment1.out create mode 100755 sysy_sets/45_comment1.sy create mode 100755 sysy_sets/46_hex_defn.out create mode 100755 sysy_sets/46_hex_defn.sy create mode 100755 sysy_sets/47_hex_oct_add.out create mode 100755 sysy_sets/47_hex_oct_add.sy create mode 100755 sysy_sets/48_assign_complex_expr.out create mode 100755 sysy_sets/48_assign_complex_expr.sy create mode 100755 sysy_sets/49_if_complex_expr.out create mode 100755 sysy_sets/49_if_complex_expr.sy create mode 100755 sysy_sets/50_short_circuit.in create mode 100755 sysy_sets/50_short_circuit.out create mode 100755 sysy_sets/50_short_circuit.sy create mode 100755 sysy_sets/51_short_circuit3.out create mode 100755 sysy_sets/51_short_circuit3.sy create mode 100755 sysy_sets/52_scope.out create mode 100755 sysy_sets/52_scope.sy create mode 100755 sysy_sets/53_scope2.out create mode 100755 sysy_sets/53_scope2.sy create mode 100755 sysy_sets/54_hidden_var.out create mode 100755 sysy_sets/54_hidden_var.sy create mode 100755 sysy_sets/55_sort_test1.out create mode 100755 sysy_sets/55_sort_test1.sy create mode 100755 sysy_sets/56_sort_test2.out create mode 100755 sysy_sets/56_sort_test2.sy create mode 100755 sysy_sets/57_sort_test3.out create mode 100755 sysy_sets/57_sort_test3.sy create mode 100755 sysy_sets/58_sort_test4.out create mode 100755 sysy_sets/58_sort_test4.sy create mode 100755 sysy_sets/59_sort_test5.out create mode 100755 sysy_sets/59_sort_test5.sy create mode 100755 sysy_sets/60_sort_test6.out create mode 100755 sysy_sets/60_sort_test6.sy create mode 100755 sysy_sets/61_sort_test7.in create mode 100755 sysy_sets/61_sort_test7.out create mode 100755 sysy_sets/61_sort_test7.sy create mode 100755 sysy_sets/62_percolation.in create mode 100755 sysy_sets/62_percolation.out create mode 100755 sysy_sets/62_percolation.sy create mode 100755 sysy_sets/63_big_int_mul.out create mode 100755 sysy_sets/63_big_int_mul.sy create mode 100755 sysy_sets/64_calculator.in create mode 100755 sysy_sets/64_calculator.out create mode 100755 sysy_sets/64_calculator.sy create mode 100755 sysy_sets/65_color.in create mode 100755 sysy_sets/65_color.out create mode 100755 sysy_sets/65_color.sy create mode 100755 sysy_sets/66_exgcd.out create mode 100755 sysy_sets/66_exgcd.sy create mode 100755 sysy_sets/67_reverse_output.in create mode 100755 sysy_sets/67_reverse_output.out create mode 100755 sysy_sets/67_reverse_output.sy create mode 100755 sysy_sets/68_brainfk.in create mode 100755 sysy_sets/68_brainfk.out create mode 100755 sysy_sets/68_brainfk.sy create mode 100755 sysy_sets/69_expr_eval.in create mode 100755 sysy_sets/69_expr_eval.out create mode 100755 sysy_sets/69_expr_eval.sy create mode 100755 sysy_sets/70_dijkstra.in create mode 100755 sysy_sets/70_dijkstra.out create mode 100755 sysy_sets/70_dijkstra.sy create mode 100755 sysy_sets/71_full_conn.in create mode 100755 sysy_sets/71_full_conn.out create mode 100755 sysy_sets/71_full_conn.sy create mode 100755 sysy_sets/72_hanoi.in create mode 100755 sysy_sets/72_hanoi.out create mode 100755 sysy_sets/72_hanoi.sy create mode 100755 sysy_sets/73_int_io.in create mode 100755 sysy_sets/73_int_io.out create mode 100755 sysy_sets/73_int_io.sy create mode 100755 sysy_sets/74_kmp.in create mode 100755 sysy_sets/74_kmp.out create mode 100755 sysy_sets/74_kmp.sy create mode 100755 sysy_sets/75_max_flow.in create mode 100755 sysy_sets/75_max_flow.out create mode 100755 sysy_sets/75_max_flow.sy create mode 100755 sysy_sets/76_n_queens.in create mode 100755 sysy_sets/76_n_queens.out create mode 100755 sysy_sets/76_n_queens.sy create mode 100755 sysy_sets/77_substr.out create mode 100755 sysy_sets/77_substr.sy create mode 100755 sysy_sets/78_side_effect.out create mode 100755 sysy_sets/78_side_effect.sy create mode 100755 sysy_sets/79_var_name.out create mode 100755 sysy_sets/79_var_name.sy create mode 100755 sysy_sets/80_chaos_token.out create mode 100755 sysy_sets/80_chaos_token.sy create mode 100755 sysy_sets/81_skip_spaces.in create mode 100755 sysy_sets/81_skip_spaces.out create mode 100755 sysy_sets/81_skip_spaces.sy create mode 100755 sysy_sets/82_long_func.out create mode 100755 sysy_sets/82_long_func.sy create mode 100755 sysy_sets/83_long_array.out create mode 100755 sysy_sets/83_long_array.sy create mode 100755 sysy_sets/84_long_array2.out create mode 100755 sysy_sets/84_long_array2.sy create mode 100755 sysy_sets/85_long_code.out create mode 100755 sysy_sets/85_long_code.sy create mode 100755 sysy_sets/86_long_code2.out create mode 100755 sysy_sets/86_long_code2.sy create mode 100755 sysy_sets/87_many_params.in create mode 100755 sysy_sets/87_many_params.out create mode 100755 sysy_sets/87_many_params.sy create mode 100755 sysy_sets/88_many_params2.out create mode 100755 sysy_sets/88_many_params2.sy create mode 100755 sysy_sets/89_many_globals.out create mode 100755 sysy_sets/89_many_globals.sy create mode 100755 sysy_sets/90_many_locals.out create mode 100755 sysy_sets/90_many_locals.sy create mode 100755 sysy_sets/91_many_locals2.in create mode 100755 sysy_sets/91_many_locals2.out create mode 100755 sysy_sets/91_many_locals2.sy create mode 100755 sysy_sets/92_register_alloc.in create mode 100755 sysy_sets/92_register_alloc.out create mode 100755 sysy_sets/92_register_alloc.sy create mode 100755 sysy_sets/93_nested_calls.in create mode 100755 sysy_sets/93_nested_calls.out create mode 100755 sysy_sets/93_nested_calls.sy create mode 100755 sysy_sets/94_nested_loops.in create mode 100755 sysy_sets/94_nested_loops.out create mode 100755 sysy_sets/94_nested_loops.sy create mode 100755 sysy_sets/95_float.in create mode 100755 sysy_sets/95_float.out create mode 100755 sysy_sets/95_float.sy create mode 100755 sysy_sets/96_matrix_add.out create mode 100755 sysy_sets/96_matrix_add.sy create mode 100755 sysy_sets/97_matrix_sub.out create mode 100755 sysy_sets/97_matrix_sub.sy create mode 100755 sysy_sets/98_matrix_mul.out create mode 100755 sysy_sets/98_matrix_mul.sy create mode 100755 sysy_sets/99_matrix_tran.out create mode 100755 sysy_sets/99_matrix_tran.sy 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