using
System;
class
GFG
{
static
int
MAX = 100, n;
static
int
[]store =
new
int
[MAX];
static
int
[,]graph =
new
int
[MAX,MAX];
static
int
[]d =
new
int
[MAX];
static
bool
is_clique(
int
b)
{
for
(
int
i = 1; i < b; i++)
{
for
(
int
j = i + 1; j < b; j++)
if
(graph[store[i],store[j]] == 0)
return
false
;
}
return
true
;
}
static
int
maxCliques(
int
i,
int
l)
{
int
max_ = 0;
for
(
int
j = i + 1; j <= n; j++)
{
store[l] = j;
if
(is_clique(l + 1))
{
max_ = Math.Max(max_, l);
max_ = Math.Max(max_, maxCliques(j, l + 1));
}
}
return
max_;
}
public
static
void
Main(String[] args)
{
int
[,]edges = { { 1, 2 }, { 2, 3 }, { 3, 1 },
{ 4, 3 }, { 4, 1 }, { 4, 2 } };
int
size = edges.GetLength(0);
n = 4;
for
(
int
i = 0; i < size; i++)
{
graph[edges[i, 0], edges[i, 1]] = 1;
graph[edges[i, 1], edges[i, 0]] = 1;
d[edges[i, 0]]++;
d[edges[i, 1]]++;
}
Console.Write(maxCliques(0, 1));
}
}