Hatena::Grouptopcoder

chokudaiの日記

 | 

2010-11-08

SRM 294 Div1 Easy Shuffling

08:58 | SRM 294 Div1 Easy Shuffling - chokudaiの日記 を含むブックマーク はてなブックマーク - SRM 294 Div1 Easy Shuffling - chokudaiの日記 SRM 294 Div1 Easy Shuffling - chokudaiの日記 のブックマークコメント

問題

カードを決められた方法でシャッフルする。最初一番上にあったカードはどこにいったか求める

方針

一番上だけおっかけても良い気はするけど、確実に全部シミュレートした

ソースコード

    public int position(int cards, int[] shuffles)
    {
        int[] num = new int[cards];
        int i, j;
        for (i = 0; i < cards; i++) num[i] = i;
        for (i = 0; i < shuffles.Length; i++) if (shuffles[i] >= 0) shuffles[i]--;
        for (i = 0; i < shuffles.Length; i++)
        {
            int[] newnum = new int[cards];
            int count = 0;
            for (j = Math.Min(shuffles[i], 0); j < Math.Max(cards/2, cards/2 + shuffles[i]); j++)
            {
                if (j >= 0 && j < cards / 2) newnum[count++] = num[j];
                int k = j - shuffles[i];
                if (k >= 0 && k < cards / 2) newnum[count++] = num[cards / 2 + k];
            }
            num = (int[])newnum.Clone();
        }
        for (i = 0; i < cards; i++) if (num[i] == 0) return i;
        return -1;
    }

iipiscoxkriipiscoxkr 2011/02/28 15:04 MyVCZh <a href="http://fwuahtjombkf.com/">fwuahtjombkf</a>, [url=http://xymdpzxnsidj.com/]xymdpzxnsidj[/url], [link=http://djyhdoxalobm.com/]djyhdoxalobm[/link], http://xaytezffprtz.com/

ゲスト



トラックバック - http://topcoder.g.hatena.ne.jp/chokudai/20101108
 |