comefrom: <gouthampradhan>two_pointers_SubarrayProductLessThanK_1.java
code: public int numSubarrayProductLessThanK(int[] nums, int k) {
      long prod = 1;
      int count = 0;
      Queue<Integer> queue = new ArrayDeque<>();
      for (int i = 0; i < nums.length; i++) {
        if (nums[i] < k) {
          count++;
          if ((prod * nums[i]) < k) {
            prod *= nums[i];
            if (!queue.isEmpty()) {
              count += (i - queue.peek());
            }
          } else {
            while (!queue.isEmpty()) {
              int last = queue.poll();
              prod /= nums[last];
              if ((prod * nums[i]) < k) {
                prod = prod * nums[i];
                if (!queue.isEmpty()) {
                  count += (i - queue.peek());
                }
                break;
              }
            }
          }
          if (queue.isEmpty()) {
            prod = nums[i];
          }
          queue.offer(i);
        } else {
          queue.clear();
        }
      }
      return count;
    }
masked: public int sample_funcname ( int [ ] var_0 , int var_1 ) {
    long var_2 = 1 ;
    int var_3 = 0 ;
    Queue < Integer > var_4 = new ArrayDeque < > ( ) ;
    for ( int var_5 = 0 ;
    var_5 < var_0 . length ;
    var_5 ++ ) {
      if ( var_0 [ var_5 ] < var_1 ) {
        var_3 ++ ;
        if ( ( var_2 * var_0 [ var_5 ] ) < var_1 ) {
          var_2 *= var_0 [ var_5 ] ;
          if ( ! var_4 . isEmpty ( ) ) {
            var_3 += ( var_5 - var_4 . peek ( ) ) ;
          }
        }
        else {
          while ( ! var_4 . isEmpty ( ) ) {
            int var_6 = var_4 . poll ( ) ;
            var_2 /= var_0 [ var_6 ] ;
            if ( ( var_2 * var_0 [ var_5 ] ) < var_1 ) {
              var_2 = var_2 * var_0 [ var_5 ] ;
              if ( ! var_4 . isEmpty ( ) ) {
                var_3 += ( var_5 - var_4 . peek ( ) ) ;
              }
              break ;
            }
          }
        }
        if ( var_4 . isEmpty ( ) ) {
          var_2 = var_0 [ var_5 ] ;
        }
        var_4 . offer ( var_5 ) ;
      }
      else {
        var_4 . clear ( ) ;
      }
    }
    return var_3 ;
  }
  