/**
 * Given two tuples, t1 and t2, this function returns a new tuple with elements
 * from t1 that are greater than the cutoff and smaller than the length of t2.
 *
 * @param t1 The first tuple.
 * @param t2 The second tuple.
 * @param cutoff The cutoff value.
 * @return A new tuple with elements from t1 that meet the conditions.
 */
fun intersectionOfIfElseAndSlicingTuples(t1: List<Int>, t2: List<Int>, cutoff: Int): List<Int> {

    val result = mutableListOf<Int>()

    for (element in t1) {
        if (cutoff < element && element < t2.size) {
            result.add(element)
        }
    }

    return result
}
/**
 * Given two tuples, t1 and t2, this function returns a new tuple with elements
 * from t1 that are greater than the cutoff and smaller than the length of t2.
 *
 * @param t1 The first tuple.
 * @param t2 The second tuple.
 * @param cutoff The cutoff value.
 * @return A new tuple with elements from t1 that meet the conditions.
 */
fun intersectionOfIfElseAndSlicingTuples(t1: List<Int>, t2: List<Int>, cutoff: Int): List<Int> {
/**
 * Given two tuples, t1 and t2, this function returns a new tuple with elements
 * from t1 that are greater than the cutoff and smaller than the length of t2.
 *
 * @param t1 The first tuple.
 * @param t2 The second tuple.
 * @param cutoff The cutoff value.
 * @return A new tuple with elements from t1 that meet the conditions.
 */
fun intersectionOfIfElseAndSlicingTuples(t1: List<Int>, t2: List<Int>, cutoff: Int): List<Int> {

    val result = mutableListOf<Int>()

    for (element in t1) {
        if (cutoff < element && element < t2.size) {
            result.add(element)
        }
    }

    return result
}