Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<stdio.h>
- #include<cmath>
- #include<cstring>
- #include<stdlib.h>
- #include<algorithm>
- #include<limits.h>
- #include<list>
- using namespace std;
- int adj[21][21],m,s[21];
- int clique(int s[],int l)
- {
- int i,j,deg[l],mini;
- while(1)
- {
- int minn=l+5,maxx=0;
- memset(deg,0,sizeof(deg));
- for(i=0;i<l;i++)
- {
- for(j=0;j<l;j++)
- {
- if(adj[s[i]][s[j]] && i!=j)
- {
- deg[i]++;
- // cout<<"i="<<s[i]<<" j="<<s[j]<<endl;
- }
- }
- }
- /* cout<<"deg==>"<<endl;
- for(i=0;i<l;i++)
- cout<<deg[i]<<" ";
- cout<<endl;
- */ for(i=0;i<l;i++)
- {
- if(deg[i]<minn)
- minn=deg[i],mini=i;
- if(deg[i]>maxx)
- maxx=deg[i];
- }
- // cout<<"min="<<minn<<" max="<<maxx<<endl;
- // system("pause");
- if(minn==maxx)
- return l;
- else
- {
- l--;
- for(i=1;i<mini;i++)
- s[i]=s[i];
- for(;i<=l;i++)
- s[i]=s[i+1];
- }
- }
- }
- int main()
- {
- int m,i,j,maxx=0;
- cin>>m;
- for(i=0;i<m;i++)
- {
- for(j=0;j<m;j++)
- cin>>adj[i][j];
- }
- /* for(i=0;i<m;i++)
- {
- for(j=0;j<m;j++)
- cout<<adj[i][j]<<" ";
- cout<<endl;
- }
- */ for(i=0;i<m;i++)
- {
- int s[21]={i},len=1;
- // cout<<"i===>"<<i+1<<endl;
- for(j=0;j<m;j++)
- if(adj[i][j])
- s[len++]=j;//,cout<<j+1<<" ";
- // cout<<"len="<<len<<endl;
- maxx=max(maxx,clique(s,len));
- }
- cout<<maxx;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement