#include<cstdio>#include<iostream>#include<cstring>const int maxn = 40;int u[maxn],v[maxn],next[maxn],first[maxn];int n,m;void read_graph(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) first[i]=-1; for(int e=0;e<m;e++) { scanf("%d%d",&u[e],&v[e]); next[e]=first[u[e]]; first[u[e]]=e; }}int main(){ read_graph(); for(int i=1;i<=n;i++) { printf("Start from %d:\n",i); for(int id=first[i];id!=-1;id=next[id]) { printf("Edge:%d st->:%d et->:%d\n",id,u[id],v[id]); } printf("\n"); } return 0;}
#include<cstring>#include<iostream>#include<cstdio>#include<algorithm>using namespace std;const int maxn = 100;int n;struct edge{ int u,v,w,next;};edge E[maxn];//determined by the scale of edgeint LE[maxn];//determined by the scale of pointvoid init(){ for(int i=0;i<maxn;i++) LE[i]=-1;}void read_graph(){ int u,v,m; scanf("%d%d",&n,&m); for(int i=0;i<m;i++){ scanf("%d%d",&u,&v); E[i].v=v; E[i].next=LE[u]; LE[u]=i; }}void print(){ for(int i=1;i<=n;i++){ printf("start from %d:\n",i); for(int id=LE[i];id!=-1;id=E[id].next){ printf("Edge %d: st:%d et:%d\n",id,i,E[id].v); } printf("\n"); }}int main(){ init(); read_graph(); print(); return 0;}