yukicoder N0.667 Mice's Luck(ネズミ達の運)
問題
No.667 Mice's Luck(ネズミ達の運) - yukicoder
解説
#247274 No.667 Mice's Luck(ネズミ達の運) - yukicoder
i番目のネズミに関する確率は、入力文字列のi番目以降における
100*(o の数)/ (xの数+oの数)
で求められます。
最初にo,xの数をそれぞれ数えてから、上記の式をそのまま実装します。
今回は出力が小数点6位ほどまで出力しないといけないので、数えるのに使う変数は最初からdoubleで宣言しておけばキャストなどが必要なくなります。
実際に出力するfor文では、i番目の文字によってok,badを減らしていけば良いです。
#include <iostream> #include <vector> #include <string> #define rep(i,j,k) for(int i=(int)j;i<(int)k;i++) using namespace std; int main(){ string s; cin>>s; double ok=0,bad=0; rep(i,0,s.length()){ if(s[i]=='o')ok++; else bad++; } rep(i,0,s.length()){ printf("%.10f\n",100*(ok/(ok+bad))); if(s[i]=='o')ok--; else bad--; } return 0; }