SRM460 DIV2

Easy::TheQuestionsAndAnswersDivTwo

public class TheQuestionsAndAnswersDivTwo
{
    public int find(string[] questions)
    {
        List<string> q = new List<string>();

        foreach (String s in questions)
        {
            if (q.Contains(s))
            {
                continue;
            }
            else
            {
                q.Add(s);
            }
        }
        return (int)Math.Pow(2.0, (double)q.Count);
    }
}

Medium::TheFansAndMeetingsDivTwo

public class TheFansAndMeetingsDivTwo
{
    public double find(int[] minJ, int[] maxJ, int[] minB, int[] maxB)
    {
        double[] J = new double[51];
        double[] B = new double[51];
        int size = minJ.Length;

        for (int i = 0; i < size; i++)
        {
            int tmp = maxJ[i] - minJ[i] + 1;
            int tmp2 = maxB[i] - minB[i] + 1;
            double p = 1.0 / (double)(size * tmp);
            double p2 = 1.0 / (double)(size * tmp2);
            for (int j = minJ[i]; j <= maxJ[i]; j++)
            {
                J[j] += p;
            }
            for (int j = minB[i]; j <= maxB[i]; j++)
            {
                B[j] += p2;
            }
        }

        double ret = 0.0;
        for (int i = 0; i <= 50; i++)
        {
            ret += J[i] * B[i];
        }
        return ret;
    }
}

こんな感じですか?