Skip to content
Related Articles

Related Articles

Improve Article

Number of solutions for x < y, where a <= x <= b and c <= y <= d and x, y are integers

  • Last Updated : 03 May, 2021

Given four integers a, b, c, d ( upto 10^6 ). The task is to Find the number of solutions for x < y, where a <= x <= b and c <= y <= d and x, y integers. 
Examples
 

Input: a = 2, b = 3, c = 3, d = 4
Output: 3

Input: a = 3, b = 5, c = 6, d = 7
Output: 6

 

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

Approach: Let’s iterate explicitly over all possible values of x. For one such fixed value of x, the problem reduces to how many values of y are there such that c <= y <= d and x = max(c, x + 1) and y <= d. Let’s assume that c <= d, otherwise, there are no valid values of y of course. It follows, that for a fixed x, there are d – max(c, x+1) + 1 valid values of y because the number of integers in a range [R1, R2] is given by R2 – R1 + 1.
Below is the implementation of the above approach: 
 

C++




// C++ implementation of above approach
#include <bits/stdc++.h>
using namespace std;
 
// function to Find the number of solutions for x < y,
// where a <= x <= b and c <= y <= d and x, y integers.
int NumberOfSolutions(int a, int b, int c, int d)
{
    // to store answer
    int ans = 0;
 
    // iterate explicitly over all possible values of x
    for (int i = a; i <= b; i++)
        if (d >= max(c, i + 1))
            ans += d - max(c, i + 1) + 1;
 
    // return answer
    return ans;
}
 
// Driver code
int main()
{
    int a = 2, b = 3, c = 3, d = 4;
 
    // function call
    cout << NumberOfSolutions(a, b, c, d);
 
    return 0;
}

Java




// Java implementation of above approach
import java.io.*;
 
class GFG
{
 
// function to Find the number of
// solutions for x < y, where
// a <= x <= b and c <= y <= d
// and x, y integers.
static int NumberOfSolutions(int a, int b,
                             int c, int d)
{
    // to store answer
    int ans = 0;
 
    // iterate explicitly over all
    // possible values of x
    for (int i = a; i <= b; i++)
        if (d >= Math.max(c, i + 1))
            ans += d - Math.max(c, i + 1) + 1;
 
    // return answer
    return ans;
}
 
// Driver code
public static void main (String[] args)
{
    int a = 2, b = 3, c = 3, d = 4;
 
    // function call
    System.out.println(NumberOfSolutions(a, b, c, d));
}
}
 
// This code is contributed
// by inder_verma

Python 3




# Python3 implementation of
# above approach
 
# function to Find the number of
# solutions for x < y, where
# a <= x <= b and c <= y <= d and
# x, y integers.
def NumberOfSolutions(a, b, c, d) :
 
    # to store answer
    ans = 0
 
    # iterate explicitly over all
    # possible values of x
    for i in range(a, b + 1) :
 
        if d >= max(c, i + 1) :
 
            ans += d - max(c, i + 1) + 1
 
    # return answer
    return ans
 
# Driver code
if __name__ == "__main__" :
 
    a, b, c, d = 2, 3, 3, 4
 
    # function call
    print(NumberOfSolutions(a, b, c, d))
 
# This code is contributed by ANKITRAI1

C#




// C# implementation of above approach
using System;
 
class GFG
{
 
// function to Find the number of
// solutions for x < y, where
// a <= x <= b and c <= y <= d
// and x, y integers.
static int NumberOfSolutions(int a, int b,
                              int c, int d)
{
    // to store answer
    int ans = 0;
 
    // iterate explicitly over all
    // possible values of x
    for (int i = a; i <= b; i++)
        if (d >= Math.Max(c, i + 1))
            ans += d - Math.Max(c, i + 1) + 1;
 
    // return answer
    return ans;
}
 
// Driver code
public static void Main()
{
    int a = 2, b = 3, c = 3, d = 4;
 
    // function call
    Console.WriteLine(NumberOfSolutions(a, b, c, d));
}
}
 
// This code is contributed
// by Akanksha Rai(Abby_akku)

PHP




<?php
// PHP implementation of above approach
 
// function to Find the number
// of solutions for x < y, where
// a <= x <= b and c <= y <= d
// and x, y integers.
function NumberOfSolutions($a, $b, $c, $d)
{
    // to store answer
    $ans = 0;
 
    // iterate explicitly over all
    // possible values of x
    for ($i = $a; $i <= $b; $i++)
        if ($d >= max($c, $i + 1))
            $ans += $d - max($c, $i + 1) + 1;
 
    // return answer
    return $ans;
}
 
// Driver code
$a = 2; $b = 3; $c = 3; $d = 4;
 
// function call
echo NumberOfSolutions($a, $b, $c, $d);
 
// This code is contributed
// by Akanksha Rai(Abby_akku)
?>

Javascript




<script>
 
// Javascript implementation of above approach
 
// function to Find the number of
// solutions for x < y, where
// a <= x <= b and c <= y <= d
// and x, y integers.
function NumberOfSolutions(a, b, c, d)
{
    // to store answer
    let ans = 0;
 
    // iterate explicitly over all
    // possible values of x
    for (let i = a; i <= b; i++)
        if (d >= Math.max(c, i + 1))
            ans += d - Math.max(c, i + 1) + 1;
 
    // return answer
    return ans;
}
 
// Driver Code
 
    let a = 2, b = 3, c = 3, d = 4;
 
    // function call
    document.write(NumberOfSolutions(a, b, c, d));
            
</script>
Output: 
3

 




My Personal Notes arrow_drop_up
Recommended Articles
Page :