Open In App

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

Last Updated : 08 Jun, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

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

 

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;
}


C




// C implementation of above approach
#include <stdio.h>
 
int max(int a, int b)
{
  int max = a;
  if(max < b)
    max = b;
  return max;
}
 
// 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
    printf("%d",NumberOfSolutions(a, b, c, d));
 
    return 0;
}
 
// This code is contributed by kothavvsaakash.


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

 

Time Complexity: O(b-a) where a and b are the given integers.
Auxiliary Space: O(1)



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads