Untitled
user_5668965
c_cpp
a year ago
881 B
21
Indexable
#include <bits/stdc++.h>
using namespace std;
#define ll long long int
ll ans,num;
void count(string &s2,ll n,ll sum,ll cnt)
{
if(n==0)
{
if(sum==cnt) ans++;
num++;
return;
}
if(s2[n-1]=='?')
{
count(s2,n-1,sum+1,cnt);
count(s2,n-1,sum-1,cnt);
}
else if(s2[n-1]=='+')
{
count(s2,n-1,sum+1,cnt);
}
else if(s2[n-1]=='-')
{
count(s2,n-1,sum-1,cnt);
}
}
void solve()
{
string s1,s2;
cin>>s1>>s2;
ll cnt=0;
f(i,0,s1.length())
{
if(s1[i]=='+') cnt++;
else cnt--;
}
count(s2,s2.length(),0LL,cnt);
cout<<fixed<<setprecision(12)<<((double)(ans)/(double)(num));
}
// 1 3 6 11 11
int main()
{
fast;
ll t=1;
//cin>>t;
while(t--)
solve();
return 0;
}Editor is loading...
Leave a Comment