Untitled


SUBMITTED BY: antoineh1

DATE: May 8, 2016, 1:59 p.m.

FORMAT: Text only

SIZE: 898 Bytes

HITS: 5641

  1. int drumminim(int **a,int A,int B){
  2. int dist[1000];
  3. int vis[100];
  4. int parinte[100];
  5. for(int i=0;i<n;i++)
  6. vis[i]=0;
  7. for(int i = 0; i< n ;++i){
  8. dist[i]=999;
  9. }
  10. dist[A]=0;
  11. for(int i=0;i<n;i++){
  12. int cur=-1;
  13. for(int j=0;j<n;++j){
  14. if(vis[j]!=0) continue;
  15. if(cur==-1 || dist[j] < dist[cur]){
  16. cur=j;
  17. }
  18. }
  19. vis[cur]=1;
  20. for(int j=0;j<n;++j){
  21. int path=dist[cur]+a[cur][j];
  22. if(a[cur][j] ==0) continue;
  23. if(path<dist[j]){
  24. dist[j]=path;
  25. parinte[j]=i;
  26. printf(" Parintele lui %d e %d\n",j,i);
  27. }
  28. }
  29. }
  30. int j;
  31. int drum[10];
  32. int i=0;
  33. j=B;
  34. i=0;
  35. while(j!=A){
  36. drum[i]=j;
  37. j=parinte[j];
  38. i++;
  39. }
  40. printf("\n");
  41. int nr=i;
  42. printf(" \nDRUMUL ");
  43. for(i=0;i<=nr;i++)
  44. printf(" %d ",drum[i]);
  45. printf(" \nDistanta minima de la %d la %d e %d \n",A,B,dist[B]);
  46. return dist[B];
  47. }

comments powered by Disqus