using System; using System.Collections.Generic; using System.Text; using System.Linq; class Program { public void Proc() { Reader.IsDebug = false; int dataSetCount = int.Parse(Reader.ReadLine()); for(int i=0; iint.Parse(a)).OrderByDescending(a=>a).ToArray(); int kyakuCount = int.Parse(Reader.ReadLine()); KyakuList = Reader.ReadLine().Split(' ').Select(a=>int.Parse(a)).OrderBy(a=>a).ToArray(); Console.WriteLine(this.GetAns(takeList[0], takeList[1], 0)); } } private int[] KyakuList; private Dictionary>> dic = new Dictionary>>(); private String GetKey(long flag) { StringBuilder key = new StringBuilder(); for(int i=0; i 0) { key.Append("#" + KyakuList[i]); } } return key.ToString(); } private int GetAns(int takeLong, int takeShort, long flag) { if(flag == (1<>()); } if(!this.dic[takeLong].ContainsKey(takeShort)) { this.dic[takeLong].Add(takeShort, new Dictionary()); } string key = this.GetKey(flag); if(this.dic[takeLong][takeShort].ContainsKey(key)) { return this.dic[takeLong][takeShort][key]; } int ans = 0; for(int i=0; i