/* Data una matrice A:nxn di 0 e 1, con 2 sulla diagonale principale, t.c. A[i,j] = 1 se a conosce j, 0 altrimenti. Si definisce Vip un indice che abbia solo 0 sulla sua riga (non conosce nessuno), ad eccezione della diagonale, e solo 1 sulla sua colonna (e' conosciuto da tutti). Scrivere una funzione che ritorni l'indice di un Vip, se esiste, -1 altrimenti. */ /* OSS: Puo' esserci al piu' un Vip in una matrice. */ int TrovaVip(A,n){ i = 1, j = 2; while (j <= n) do if (A[i,j] == 0 OR A[i,j] == 2) j++ else{ i = j; j = j+1; } //l'indice i è il potenziale VIP j = 1; while (j <= n AND (A[i,j] == 0 OR A[i,j] == 2) j++; if (j <= n) return -1; // i non è VIP, conosce j j = 1; while (j <= n AND (A[j,i] == 0 OR A[j,i] == 2) j++; if (j <= n) return -1; // i non è VIP, non è conosciuto da j //i è VIP return i; }