#include<stdio.h>
#include<string.h>
#define MAX 200
int main()
{
int Vexs,Edges;//顶点和边数
int m,n;
int p,q;//弧尾p,弧头q
int id,od;
int Edge[MAX][MAX];
int A[MAX][MAX];
while(1)
{
memset(Edge,0,sizeof(Edge));
scanf("%d %d",&Vexs,&Edges);
if(Vexs==0&&Edges==0)
break;
for(m=0;m<Edges;m++)
{
scanf("%d%d",&p,&q);
Edge[p-1][q-1]=1;
}
for(m=0;m<Vexs;m++)
{
od=0;
for(n=0;n<Vexs;n++)
{
od+=Edge[m][n];
}
if(m==0)
printf("%d",od);
else
printf(" %d",od);
}
printf("\n");
for(m=0;m<Vexs;m++)
{
id=0;
for(n=0;n<Vexs;n++)
id+=Edge[n][m];
if(m==0)
printf("%d",id);
else
printf(" %d",id);
}
printf("\n");
}//The so easy programme cost me 1.5h,I am dull
}
图的实现—邻接矩阵(求出各顶点的出度和入度)