Hatena::Grouptopcoder

chokudaiの日記

 | 

2010-11-09

SRM 358 Div1 Easy BrokenButtons

21:40 | SRM 358 Div1 Easy BrokenButtons - chokudaiの日記 を含むブックマーク はてなブックマーク - SRM 358 Div1 Easy BrokenButtons - chokudaiの日記 SRM 358 Div1 Easy BrokenButtons - chokudaiの日記 のブックマークコメント

問題

省略 各自読んでね!

方針

pageが50万以下なので、まぁ100万以下まで調べれば十分 ということで全探査

ソースコード

    public int minPresses(int page, int[] broken)
    {
        int res = Math.Abs(100 - page);
        int i;
        bool[] b = new bool[10];
        for (i = 0; i < broken.Length; i++) b[broken[i]] = true;
        if (!b[0]) res = Math.Min(res,page + 1);
        for (i = 1; i <= 1000000; i++)
        {
            int temp = Math.Abs(page - i) + i.ToString().Length;
            if (res <= temp) continue;
            int t = i;
            while (t != 0)
            {
                if (b[t%10]) break;
                t /= 10;
            }
            if (t == 0)
            {
                //Console.WriteLine(i + " " + temp);
                res = temp;
            }
        }
        return res;
    }
 |