private BridgeProperty GetLongestBridges(Bridge bridge) { //List<Bridge> subBridges = new List<Bridge>(); //bool wasConnectionMade = false; //foreach( Component component in components ) { // if( bridge.Connect( component ) ) { // wasConnectionMade = true; // subBridges.Add( bridge ); // bridge.DisconnectLast(); // } //} //if( wasConnectionMade ) { // return subBridges; //} //List<Bridge> bridges = new List<Bridge>(); //bridges.Add( bridge ); //return bridges; BridgeProperty bestBridgeProperties = new BridgeProperty(bridge.GetLength(), bridge.GetStrength()); foreach (Component component in components) { if (bridge.Connect(component)) { BridgeProperty newBridgeProperties = GetLongestBridges(bridge); if (newBridgeProperties.length > bestBridgeProperties.length || (newBridgeProperties.length == bestBridgeProperties.length && newBridgeProperties.strength > bestBridgeProperties.strength)) { bestBridgeProperties = newBridgeProperties; } bridge.DisconnectLast(); } } return(bestBridgeProperties); }
private int GetStrengthOfStrongestLongestBridge(Bridge bridge) { BridgeProperty longestBridgeProperties = GetLongestBridges(bridge); return(longestBridgeProperties.strength); }