2011年7月11日月曜日

anarchy golf - Joshephus or MamakoDate Sequence EASY 解答編

anarchy golf - Joshephus or MamakoDate Sequence EASY

m,nが与えられたとき
1~mの数列からn個置きに出力。
最後まで行ったらまた最初から同様に。
ただし使った数字の場所はどんどん詰めて行く。

という問題。

空き配列を用意して使ったものにマーク、未使用のもののみn個飛ばしで出力するという感じで組んだのがこれ。
o;a[99];main(m,n,i,c){for(;o||~scanf("%d%d",&m,&n)&&memset(a+1,i=0,4*(o=m));a[i]=printf("%d%c",i,--o?32:10))for(c=n;c;c-=!a[i=++i>m?:i]);}

koiさん、notさんはmemsetじゃなくbzeroを使った感じ。
これまた古い関数です。
マーク用配列とループ変数なんかも同時に初期化してるみたい。

120byte以下の上位陣は正直どうやってるのかよくわからない。
計算してみればわかるかもですが^^;;

0 件のコメント:

コメントを投稿