/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* utils_medium.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: mteriier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/12/10 13:58:40 by mteriier #+# #+# */ /* Updated: 2025/12/10 13:58:42 by mteriier ### ########lyon.fr */ /* */ /* ************************************************************************** */ #include "push_swap.h" int get_first_lower(t_stack *first) { t_stack *tmp; int lower; tmp = first; lower = tmp->value; while (tmp->next != first) { if (lower < tmp->value) lower = tmp->value; tmp = tmp->next; } return (lower); } int get_next_lower(t_stack *first, int old_lower) { t_stack *tmp; int next_lower; tmp = first; lower = tmp->value; while (tmp->next != first) { if (tmp->value != old_lower && lower < tmp->value) lower = tmp->value; tmp = tmp->next; } return (lower); } int calcul_range(int value, int range) { int max_range; max_range = 0; if (value < 0) while (max_range > value) max_range -= range; else while (max_range <= value) max_range += range; if (max_range < 0) return (max_range + range - 1); return (max_range - 1); } int in_range(int value, int max_range) { int min_range; min_range = max_range - 9; if (value <= max_range && value >= min_range) return (1); return (0); } int get_number_in_range(int range, t_stacks *piles) { int nb_in; t_stack *tmp; t_stack *first; nb_in = 0; tmp = piles->a; first = tmp; while (tmp->next != first) { if (in_range(tmp->value, range)) nb_in++; tmp = tmp->next; } return (nb_in); }