Pagini recente » Cod sursa (job #2451286) | Cod sursa (job #285586) | Cod sursa (job #2029529) | Cod sursa (job #678240) | Cod sursa (job #521424)
Cod sursa(job #521424)
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#define dim 10005
#define dim2 5005
using namespace std;
int A[dim][dim],C[dim][dim],n,m,i,x,y,viz[dim],j;
int l[dim],c[dim],NR;
void citire()
{
FILE *f=fopen("cuplaj.in","r");
fscanf(f,"%d %d %d",&n,&m,&m);
for(i=1;i<=m;i++)
{
fscanf(f,"%d %d",&x,&y);
y+=n;
if(!viz[x])
{
// A[0][0]++;
A[0][x]=x;
viz[x]=1;}
A[x][0]++;
C[x][0]++;
A[x][A[x][0]]=y;
C[x][y]=1;
}
fclose(f);
}
void dfs()
{
for(i=1;i<=n;i++)
if(A[0][i])
{
x=A[0][i];
for(j=1;j<=A[x][0];j++)
{
y=A[x][j];
if(C[x][y] && !viz[y])
{
NR++;
C[x][y]=0;
l[NR]=x;
c[NR]=y-n;
viz[y]=1;
}
}
}
}
int main()
{
FILE *g=fopen("cuplaj.out","w");
citire();
memset(viz,0,sizeof(viz));
dfs();
fprintf(g,"%d\n",NR);
for(i=1;i<=NR;i++)
fprintf(g,"%d %d\n",l[i],c[i]);
fclose(g);
return 0;
}