//var1 #include #include #include main() { int c[10][10],a[10][10],n,i,j,k; clrscr(); printf("\n Dati numarul de orase : "); scanf("%d",&n); printf("\n Dati matricea costurilor : "); for(i=0;ia[i][k]+a[k][j]) a[i][j]=a[i][k]+a[k][j]; for(i=0;i #include #include #define N 100 int x[2*N],r[2*N],costmin=32767,o[N],p[N],c[N][N],xi,xf,n,dat; int Verif(int k) { int i,j ; for(i=1;i1) { vb=0; while(x[k]cost ){for(i=1;i<=k;i++) r[i]=x[i]; costmin=cost; nr=k;} cost-=c[x[k-1]][x[k]]; } else if(vb) { k++;x[k]=0;} else { k--; cost-=c[x[k-1]][x[k]]; for (i=1;i<=dat;i++) if(x[k]==o[i])if(p[i]==1){p[i]=0;nrv--;} else p[i]--;} } if(nr==0) {printf("Nu se poate realiza ruta!");getch();exit(1);} return nr; } void main (void) { int i,k,j; clrscr(); printf("\t\tTrezorierul\n"); printf("n="); scanf("%d",&n); printf("Orasul initial:"); scanf("%d",&xi); printf("Orasul final:"); scanf("%d",&xf); i=0;dat=0; do{ i++; printf("Oras cu datorie:"); scanf("%d",&o[i]); }while(i