#include<stdio.h> int main() { int n,m,i; int u[6],v[6],w[6]; int first[5],next[6]; //first记录每个点连接的第一边,e.g:first[u[i]]表示点u[i]能到达的第一个点 //next[i]表示编号为i的边的下一条边的编号 scanf("%d %d",&n,&m); for(i=1;i<=n;i++) first[i]=-1;//表示现在还没有边 for(i=1;i<=m;i++){//i表示变得编号 scanf("%d %d %d",&u[i],&v[i],&w[i]); next[i]=first[u[i]];//倒序记录的,先输入的为next first[u[i]]=i;//后输入的为first } printf("\n\n\n"); for(i=1;i<=n;i++){ int k=first[i]; while(k!=-1){ printf("%d %d %d\n",u[k],v[k],w[k]); k=next[k]; } } return 0; }
时间: 2024-10-02 04:46:39