Pagini recente » Cod sursa (job #2533143) | Cod sursa (job #1182682) | Cod sursa (job #762750) | Cod sursa (job #1794481) | Cod sursa (job #124926)
Cod sursa(job #124926)
#include<fstream.h>
#define dim 257
int a[dim][dim];
int vect[dim],viz[dim],cont,v[dim];
int main()
{ifstream f("strazi.in");
ofstream g("strazi.out");
int n,i,j,m,x,y,k=0,kk=0;
f>>n>>m;
for(i=1;i<=m;i++)
{f>>x>>y;
a[x][0]++;
a[x][a[x][0]]=y;
}
f.close();
for(i=1;i<=n;i++)
{if(!viz[i])
{v[kk]=i;
x=i;
k++;
vect[k]=x;
viz[x]=1;
y=1;
while(a[x][0])
{while((y<=a[x][0])&&(viz[a[x][y]])) y++;
if((y<=a[x][0])&&(!viz[a[x][y]]))
{x=a[x][y]; //cazul 1.y<=a[x][0]&&(!viz[x][y])
viz[x]=1; //cazul 2.y==(a[x][0]+1)
k++;
vect[k]=x;
}
else a[x][0]=0;
}
kk++;
v[kk]=x;
kk++;
cont++;
}
}
cont--;
g<<cont<<'\n';
for(i=1;(i<kk)&&(cont);i=i+2)
{g<<v[i]<<" "<<v[i+1]<<'\n';
cont--;
}
for(i=1;i<=n;i++)
g<<vect[i]<<" ";
g<<'\n';
g.close();
return 0;
}