Pagini recente » Cod sursa (job #691793) | Cod sursa (job #59800) | Cod sursa (job #125257) | Cod sursa (job #2600855) | Cod sursa (job #220328)
Cod sursa(job #220328)
#include <fstream>
using namespace::std;
ifstream in("dfs.in");
ofstream out("dfs.out");
int n,m,c[100000],xmin,xmax;
struct graf
{int x,y;} g[200000];
int MAX(int a,int b){return ((a) < (b) ? (b) : (a));}
int MIN(int a,int b){return ((a) < (b) ? (a) : (b));}
void citire()
{in>>n>>m;
for(int i=0;i<m;i++)
{in>>g[i].x;in>>g[i].y;}
in.close();
}
void desc()
{int i;
for(i=1;i<=n;i++)
c[i]=i;
for(int j=0;j<m;j++)
{if(c[g[j].x]!=c[g[j].y])
{xmin=MIN(c[g[j].x],c[g[j].y]);
xmax=MAX(c[g[j].x],c[g[j].y]);}
for(i=1;i<=n;i++)
if(c[i]==xmax) c[i]=xmin; } }
void afisare()
{int nrc=0;
for(int i=1;i<=n;i++)
{if(nrc<c[i]) nrc=c[i];}
out<<nrc;
out.close();
}
int main()
{ citire();
desc();
afisare();
return 0;
}