# matrix mette in una tabella (nrow righe)x(ncol colonne) i dati elencati
# un vettore v e' una sequenza di oggetti v[1], v[2], ...
# sort ordina una collezione di numeri
posti <- 6; p <- 0
d <- matrix(data = c(0,170,185,125,230,295,
                   170,  0,165,155,225,330,
                   185,165, 0,  85,110,260,
                   125,155, 85,  0,135,200,
                   230,225,110,135,  0,190,
                   295,330,260,200,190, 0),nrow=posti, ncol=posti)
min <- 1e100; a <- vector(length=posti)
I <- 1; for(J in 1:posti) { for(K in 1:posti) {
for(L in 1:posti) { for(M in 1:posti) { for(N in 1:posti) {
 r <- ifelse( sort(c(I,J,K,L,M,N)) == c(1,2,3,4,5,6),1,2 );
 if (r[1]==1 & r[2]==1 & r[3]==1 & r[4]==1 & r[5]==1 & r[6]==1) {
  D <- d[I,J]+d[J,K]+d[K,L]+d[L,M]+d[M,N]+d[N,I]; p <- p+1;
  if(D <= min) {min<- D;a[1]<- I;a[2]<- J;a[3]<- K;a[4]<- L;a[5]<- M;a[6]<- N}
}}}}}}
"n. percorsi possibili:"; p
"percorso con percorrenza minima:"
for(i in 1:posti) print(a[i]); a[1]
"percorrenza ="; min