intra to gitea
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* calc_cheap.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: lfirmin <[email protected]> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/11/03 11:32:29 by lfirmin #+# #+# */
|
||||
/* Updated: 2024/11/03 18:05:31 by lfirmin ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
#include "../include/pushswap.h"
|
||||
|
||||
int calc_move(t_stack *stack_a, t_stack *stack_b, int index_b)
|
||||
{
|
||||
int index_a;
|
||||
int value_b;
|
||||
|
||||
value_b = return_value(stack_b, index_b);
|
||||
index_a = calc_index_a(stack_a, value_b);
|
||||
return (calc_move_stack(stack_b, index_b) \
|
||||
+ calc_move_stack(stack_a, index_a));
|
||||
}
|
||||
|
||||
int calc_cheaper(t_stack *stack_a, t_stack *stack_b)
|
||||
{
|
||||
int index;
|
||||
int cheaper;
|
||||
int cheaper_index;
|
||||
t_node *curr;
|
||||
|
||||
curr = stack_b->top;
|
||||
index = 1;
|
||||
cheaper_index = 1;
|
||||
cheaper = calc_move(stack_a, stack_b, index);
|
||||
index++;
|
||||
while (curr->next)
|
||||
{
|
||||
if (cheaper > calc_move(stack_a, stack_b, index))
|
||||
{
|
||||
cheaper = calc_move(stack_a, stack_b, index);
|
||||
cheaper_index = index;
|
||||
}
|
||||
index++;
|
||||
curr = curr->next;
|
||||
}
|
||||
return (cheaper_index);
|
||||
}
|
||||
|
||||
int calc_move_stack(t_stack *stack, int index)
|
||||
{
|
||||
if (index <= stack->size / 2)
|
||||
return (index - 1);
|
||||
return (stack->size - index + 1);
|
||||
}
|
||||
Reference in New Issue
Block a user