private void FillData(string fileName) { if (fileName == null) { fileName = "trending_today.in"; } using (var sr = new StreamReader(fileName, Encoding.ASCII)) { // var inputA = sr.ReadLine().Split(' ').Select(x => Int32.Parse(x)).ToArray(); VideoCount = inputA[0]; EndpointCount = inputA[1]; RequestCount = inputA[2]; CacheCount = inputA[3]; CacheCapacity = inputA[4]; Endpoints = new Endpoint[EndpointCount]; Requests = new Request[RequestCount]; Caches = new CacheServer[CacheCount]; for (int cacheId = 0; cacheId < CacheCount; cacheId++) { Caches[cacheId] = new CacheServer { id = cacheId }; } // inputA = sr.ReadLine().Split(' ').Select(x => Int32.Parse(x)).ToArray(); VideoSize = inputA; // Endpoints for (int endpointId = 0; endpointId < EndpointCount; endpointId++) { var e = new Endpoint(); inputA = sr.ReadLine().Split(' ').Select(x => Int32.Parse(x)).ToArray(); e.pingToDC = inputA[0]; e.id = endpointId; var linkCount = inputA[1]; for (int cs = 0; cs < linkCount; cs++) { inputA = sr.ReadLine().Split(' ').Select(x => Int32.Parse(x)).ToArray(); e.caches.Add(new CacheLink(inputA[0], inputA[1])); // Add link to cache and vice versa Caches[inputA[0]].endpoints.Add(new CacheLink(endpointId, inputA[1])); } // Endpoints[endpointId] = e; } // Requestes for (int requestId = 0; requestId < RequestCount; requestId++) { inputA = sr.ReadLine().Split(' ').Select(x => Int32.Parse(x)).ToArray(); // var request = new Request(requestId, inputA[0], inputA[1], inputA[2]); Requests[requestId] = request; } } }