static void Main(string[] args) { using (SpaceDelimReader sr = new SpaceDelimReader(args[0])) { int tst = sr.NextInt(); for (int cas = 1; cas <= tst; ++cas) { int n = sr.NextInt(); long aa = sr.NextString().LongValue(); long b = sr.NextString().LongValue(); long c = sr.NextString().LongValue(); long d = sr.NextString().LongValue(); long x0 = sr.NextString().LongValue(); long y0 = sr.NextString().LongValue(); long M = sr.NextString().LongValue(); long[,] cnt = new long[3, 3]; cnt[x0 % 3, y0 % 3]++; for (int i = 1; i < n; ++i) { x0 = (x0 * aa + b) % M; y0 = (y0 * c + d) % M; cnt[x0 % 3, y0 % 3]++; } var pairs = Enumerable.Range(0, 3).SelectMany(i => Enumerable.Range(0, 3).Select(j => new { I = i, J = j })).ToArray(); long res = 0; for (int i = 0; i < pairs.Length; ++i) { res += Comb3(cnt[pairs[i].I, pairs[i].J]); for (int j = i + 1; j < pairs.Length; ++j) { int isu1 = pairs[i].I + pairs[j].I + pairs[i].I; int jsu1 = pairs[i].J + pairs[j].J + pairs[i].J; if (isu1 % 3 == 0 && jsu1 % 3 == 0) { res += cnt[pairs[j].I, pairs[j].J] * Comb2(cnt[pairs[i].I, pairs[i].J]); } int isu2 = pairs[i].I + pairs[j].I + pairs[j].I; int jsu2 = pairs[i].J + pairs[j].J + pairs[j].J; if (isu2 % 3 == 0 && jsu2 % 3 == 0) { res += cnt[pairs[i].I, pairs[i].J] * Comb2(cnt[pairs[j].I, pairs[j].J]); } for (int k = j + 1; k < pairs.Length; ++k) { int isu = pairs[i].I + pairs[j].I + pairs[k].I; int jsu = pairs[i].J + pairs[j].J + pairs[k].J; if (isu % 3 == 0 && jsu % 3 == 0) { res += cnt[pairs[i].I, pairs[i].J] * cnt[pairs[j].I, pairs[j].J] * cnt[pairs[k].I, pairs[k].J]; } } } } Console.Write("Case #{0}: ", cas); Console.WriteLine(res); } } }
static void Main(string[] args) { using (SpaceDelimReader sr = new SpaceDelimReader(args[0])) { int tst = sr.NextInt(); for (int cas = 1; cas <= tst; ++cas) { int k = sr.NextInt(); string s = sr.NextString(); int res = k.AllPermutations().Select(p => GetSize(s, p)).Min(); Console.Write("Case #{0}: ", cas); Console.WriteLine(res); } } }
static void Main(string[] args) { using (SpaceDelimReader sr = new SpaceDelimReader(args[0])) { int tst = sr.NextInt(); for (int cas = 1; cas <= tst; ++cas) { int m = sr.NextInt(); int n = sr.NextInt(); string[] mat = sr.NextString(m); MaxMatching ob = new MaxMatching(mat, m, n); Console.Write("Case #{0}: ", cas); Console.WriteLine(ob.calc()); } } }