# Maximum number of edges in Bipartite graph in C++

C++Server Side ProgrammingProgramming

#### C in Depth: The Complete C Programming Guide for Beginners

45 Lectures 4.5 hours

#### Practical C++: Learn C++ Basics Step by Step

Most Popular

50 Lectures 4.5 hours

#### Master C and Embedded C Programming- Learn as you go

66 Lectures 5.5 hours

## Problem statement

Given an integer N which represents the number of Vertices. The Task is to find the maximum number of edges possible in a Bipartite graph of N vertices.

## Bipartite Graph

• A Bipartite graph is one which is having 2 sets of vertices.
• The set are such that the vertices in the same set will never share an edge between them.

## Example

If N = 10 then there will be total 25 edges −

• Both sets will contain 5 vertices and every vertex of first set will have an edge to every other vertex of the second set
• Hence total edges will be 5 * 5 = 25

## Algorithm

• The number of edges will be maximum when every vertex of a given set has an edge to every other vertex of the other set i.e. edges = m * n where m and n are the number of edges in both the sets
• in order to maximize the number of edges, m must be equal to or as close to n as possible
• Hence, the maximum number of edges can be calculated with the formula −

(n * n) / 4

## Example

Live Demo

#include <bits/stdc++.h>
using namespace std;
int getMaxEdges(int n) {
return floor((n * n) / 4);
}
int main() {
int n = 7;
cout << "Maximum edges = " << getMaxEdges(n) << endl;
return 0;
}

## Output

When you compile and execute above program. It generates following output −

Maximum edges = 12
Updated on 10-Jan-2020 07:53:40

Advertisements