cnt[i]=0;
}
double temp;
for(int i=0;i
if(yes[i])
{
dfs(s[i]);
}
}
for(int i=0;i
if(!yes[i]) continue;
for(int j=0;j
if(j==i)
{
temp = double(yes[i])/(yes[i]+2.0);
dpy[s[j]]+=temp*nn;
continue;
}
if(!yes[j]) continue;
temp = dpx[s[i]]*go[i][j];
temp *= yes[i]+1.0;
temp /= 2.0;
if((i-j+ss)%ss==1)
{
dpy[s[j]]+=temp;
}
else
{
temp/=yes[j]+1.0;
temp*=yes[j];
dpy[s[j]]+=temp;
}
temp = dpx[s[i]]*back[i][j];
temp *= yes[i]+1.0;
temp /= 2.0;
if((i-j+ss)%ss==ss-1)
{
dpy[s[j]]+=temp;
}
else
{
temp/=yes[j]+1.0;
temp*=yes[j];
dpy[s[j]]+=temp;
}
}
}
for(int i=0;i
if(yes[i]) continue;
for(int j=0;j
if(yes[j])
{
temp = nn*go[i][j]*0.5;
if((i-j+ss)%ss==1)
{
dpy[s[j]]+=temp;
}
else
{
temp/=yes[j]+1.0;
temp*=yes[j];
dpy[s[j]]+=temp;
}
temp = nn*back[i][j]*0.5;
if((i-j+ss)%ss==ss-1)
{
dpy[s[j]]+=temp;
}
else
{
temp/=yes[j]+1.0;
temp*=yes[j];
}
}
}
}
// MM(vis,0);
for(int i=0;i<=n;i++)
{
vis[i]=0;
}
for(int i=0;i
if(yes[i])
{
df2(s[i]);
}
}
for(int i=0;i
if(!yes[(i+1)%ss])
{
temp = dpx[s[i]]*back[i][(i+1)%ss];
temp *= yes[i]+1.0;
temp /= 2.0;
dp[s[(i+1)%ss]] += temp;
}
if(!yes[(i-1+ss)%ss])
{
temp = dpx[s[i]]*go[i][(i-1+ss)%ss];
temp *= yes[i]+1.0;
temp /= 2.0;
dp[s[(i-1+ss)%ss]] += temp;
}
}
for(int i=0;i
if(!yes[(i+1)%ss])
{
dp[s[(i+1)%ss]] += nn*back[i][(i+1)%ss]*0.5;
}
if(!yes[(i-1+ss)%ss])
{
dp[s[(i-1+ss)%ss]] += nn*go[i][(i-1+ss)%ss]*0.5;
}
}
ans.clear();
for(int i=1;i<=n;i++)
{
if(dp[i]>eps)
{
ans.pb(dp[i]);
}
}
for(int i=1;i<=5;i++)
{
ans.pb(0.0);
}
sort(ans.begin(),ans.end());
/* for(int i=0;i
cout< }
cout<<"yes **"<
for(int i=0;i
cout<
cout<<"**"<
cout< for(int j=0;j