public static boolean iterate() {
		boolean didFind = false;
		
		for(int i=0; i<n; i++) {
			// update what Company i owns
			int[] cOwn = new int[n];
			for(int j=0; j<n; j++) {
				int test = ownership[i][j];
				if(test >= 50 && test != 100) {
					test = 100;
					didFind = true;
				}
				cOwn[j] = test;
				if(test==100 && (j!=i && used[i][j]==false)) {
					for(int k=0; k<n; k++) {
						ownership[i][k] = Math.min(100, ownership[i][k] + ownership[j][k]);
						if(ownership[i][k]==100) {
							didFind = true;
						}
					}
					used[i][j] = true;
				}
			}
		}
		
		return didFind;
	}