メモ

yukicoderでゆるふわgolf

yukicoder No.667 Mice's Luck(ネズミ達の運)

問題はこちら
No.667 Mice's Luck(ネズミ達の運) - yukicoder

本質的には累積和の概念だと思うので★1.5よりは高級だと思うんですがどうなんでしょ

「セーフな箱があといくつ残っているか」を覚えておけば良い

main(){
	char s[1<<17];
	int n,o;
	n=strlen(gets(s));
	for(i=0;i<n;i++)if(s[i]=='o')o++;
	for(i=0;i<n;i++){
		printf("%f\n",o*100.0/(n-i));
		if(s[i]=='o')o--;
	}
}

s[i]%5で、oのとき1,xのとき0になることを使って縮める。
また、ループの終了条件をs[i]にすれば後半のループでnを破壊しても大丈夫
ループをまとめるのはうまくできなかった

n,o,i;
char s[1<<17];
main(){
	for(gets(s);s[n];o+=s[n++]%5);
	for(;s[i];o-=s[i++]%5)printf("%f\n",o*1e2/n--);
}

105B