TopCoder SRM 586: TeamsSelection
交互に最も preference が高い選手を選んでいく。
public class TeamsSelection { public string simulate(int[] preference1, int[] preference2) { int n = preference1.Length; var result = Enumerable.Repeat(' ', n).ToArray(); for (int i = 0; i < n; i++) { var preference = (i % 2 == 0) ? preference1 : preference2; int target = preference.Where(p => result[p - 1] == ' ').First(); result[target - 1] = (char)('1' + (i % 2)); } return new string(result); } }