Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- string input1 = "6 7"; // nbr cable 1 et 500 et nbr requete 1 et 3N
- string[] input2 = {"1 3", "1 4", "1 5", "1 6", "1 7", "2 9", "3 11"};
- //string[] input2 = {"1 3", "1 4", "2 8", "1 5", "1 6", "1 7", "1 9"};
- string result = "";
- int nbCable = System.Convert.ToInt32(input1.Split(' ')[0]);
- int nbRequest = System.Convert.ToInt32(input1.Split(' ')[1]);
- int nbAvailableCable = nbCable;
- int i = 1;
- Dictionary<int, int> endCable = new Dictionary<int, int>();
- List<int> input2Casted = new List<int>();
- foreach(string task1 in input2)
- {
- input2Casted.Add(System.Convert.ToInt32(task1.Split(' ')[0]));
- input2Casted.Add(System.Convert.ToInt32(task1.Split(' ')[1]));
- }
- int max = input2Casted.Max();
- while(i < max)
- {
- int index = 1;
- bool isBreak = false;
- List<int> keyToRemove = new List<int>();
- foreach(var item in endCable)
- {
- //Console.WriteLine("AAAAAA " + item.Value);
- if(item.Value == i)
- {
- keyToRemove.Add(item.Key);
- }
- }
- foreach(var item in keyToRemove)
- {
- //Console.WriteLine("Free " + item);
- endCable.Remove(item);
- nbAvailableCable++;
- }
- foreach(string task1 in input2)
- {
- int nb = System.Convert.ToInt32(task1.Split(' ')[0]);
- if(nb == i)
- {
- if(nbAvailableCable > 0 && !endCable.ContainsKey(index))
- {
- //Console.WriteLine("index " + index);
- endCable.Add(index, System.Convert.ToInt32(task1.Split(' ')[1]));
- nbAvailableCable--;
- result += "" + index;
- isBreak = true;
- //break;
- }
- else
- {
- return result + "pas possible";
- }
- }
- if (index == nbCable)
- index = 1;
- else
- index++;
- }
- i++;
- }
- return result;
Advertisement
Add Comment
Please, Sign In to add comment