Exemplo n.º 1
0
int main()
{
	int i, j, t, s, q;

	for (scanf("%d", &t); t-- > 0 && scanf("%d", &n) == 1;) {
		for (i = 0; i < n; i++)
			for (j = 0; j < n; j++)
				scanf("%d", &a[i][j]);

		m = (n + 1) / 2;

		for (i = 0; i < m && scanf("%d", &s) == 1; i++) {
			while (s-- > 0 && scanf("%d", &q) == 1) {
				if (q == 1) apply1(i);
				if (q == 2) apply2(i);
				if (q == 3) apply3(i);
				if (q == 4) apply4(i);
			}
		}

		for (i = 0; i < n; i++)
			for (j = 0; j < n; j++)
				printf(((j + 1) < n) ? "%d " : "%d\n", a[i][j]);
	}

	return 0;
}
Exemplo n.º 2
0
      static void apply(ElementType const & element_in, MeshTypeOut & segment_out,
                        EdgeRefinementFlagAccessor const edge_refinement_flag_accessor,
                        VertexToVertexHandleAccessor const vertex_to_vertex_handle_accessor,
                        EdgeToVertexHandleAccessor edge_to_vertex_handle_accessor)
      {
        typedef typename viennagrid::result_of::const_element_range<ElementType, viennagrid::line_tag>::type            EdgeOnCellRange;
        typedef typename viennagrid::result_of::iterator<EdgeOnCellRange>::type                 EdgeOnCellIterator;

        std::size_t edges_to_refine = 0;
        EdgeOnCellRange edges_on_cell(element_in);
        for (EdgeOnCellIterator eocit = edges_on_cell.begin();
                                eocit != edges_on_cell.end();
                              ++eocit)
        {
          if ( edge_refinement_flag_accessor(*eocit) )
            ++edges_to_refine;
        }

        switch (edges_to_refine)
        {
          case 0: apply0(element_in, segment_out, edge_refinement_flag_accessor, vertex_to_vertex_handle_accessor, edge_to_vertex_handle_accessor); break;
          case 1: apply1(element_in, segment_out, edge_refinement_flag_accessor, vertex_to_vertex_handle_accessor, edge_to_vertex_handle_accessor); break;
          case 2: apply2(element_in, segment_out, edge_refinement_flag_accessor, vertex_to_vertex_handle_accessor, edge_to_vertex_handle_accessor); break;
          case 3: apply3(element_in, segment_out, edge_refinement_flag_accessor, vertex_to_vertex_handle_accessor, edge_to_vertex_handle_accessor); break;
          default: //nothing to do...
                  break;
        }
      } //apply()