Esempio n. 1
0
int main()
{
    int c, tc = 0;
    long i, m, x, y;
    while(std::scanf("%ld%ld", &n, &m) != EOF)
    {
        rev = false;
        for(i = 1; i <= n+1; ++i)
            list[i].num = i, list[i].prev = &list[i-1], list[i-1].next = &list[i];
        list[0].num = list[n+1].num = 0, list[n+1].next = NULL;
        for(i = 0; i < m; ++i)
        {
            std::scanf("%d", &c);
            if(c < 4)
                std::scanf("%ld%ld", &x, &y);
            if((c == 1 && !rev) || (c == 2 && rev))
                move_to_left(&list[x], &list[y]);
            else if((c == 2 && !rev) || (c == 1 && rev))
                move_to_right(&list[x], &list[y]);
            else if(c == 3)
                swap(&list[x], &list[y]);
            else
                rev = !rev;
        }
        std::printf("Case %d: %lu\n", ++tc, get_odd_sum());
    }
    return 0;
}
Esempio n. 2
0
static void
add_left_clicked (GtkWidget *button,
		  gpointer data)
{
  GtkTreeIter iter;

  GtkTreeSelection *selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (data));

  gtk_tree_selection_get_selected (selection, NULL, &iter);

  move_to_left (gtk_tree_view_get_model (GTK_TREE_VIEW (data)), &iter, NULL);
}
Esempio n. 3
0
static void
move_row  (GtkTreeModel *src,
	   GtkTreeIter  *src_iter,
	   GtkTreeModel *dest,
	   GtkTreeIter  *dest_iter)
{
  if (src == left_tree_model)
    move_to_right (src_iter, dest, dest_iter);
  else if (dest == left_tree_model)
    move_to_left (src, src_iter, dest_iter);
  else 
    move_up_or_down (src, src_iter, dest, dest_iter);
}
int		my_mlx_hook_loop(t_env *e)
{
	if (e->mv->left == 1)
		e = move_to_left(e);
	if (e->mv->right == 1)
		e = move_to_right(e);
	if (e->mv->front == 1)
		e = move_to_front(e);
	if (e->mv->back == 1)
		e = move_to_back(e);
	my_expose_hook(e);
	return (0);
}
Esempio n. 5
0
inline void swap(node_t *x, node_t *y)
{
    if(x->next == y)
        move_to_right(x, y);
    else if(y->next == x)
        move_to_left(x, y);
    else
    {
        node_t *px = x->prev, *nx = x->next, *py = y->prev, *ny = y->next;
        px->next = y, y->prev = px;
        y->next = nx, nx->prev = y;
        py->next = x, x->prev = py;
        x->next = ny, ny->prev = x;
    }
}