ural 1165 subnumber ------猥琐的超级大繁题(三)

2014-11-24 11:46:35 · 作者: · 浏览: 10
if (i>0)
{
sp=(BigNum(st)-1).toString();
ss=s.substr(0,i);
if (ss.size()>sp.size()) continue;
if (sp.rfind(ss)!=sp.size()-ss.size()) ff=false;
}
if (!ff) continue;
slen=len;
for (k=j+1;k+slen-1 {
st=(BigNum(st)+1).toString();
slen=st.size();
if (k+slen-1>=n) break;
if (st!=s.substr(k,slen))
{
ff=false;
break;
}
}
if (!ff) continue;
if (k {
st=(BigNum(st)+1).toString();
ss=s.substr(k,n-k);
if (st.find(ss)!=0) ff=false;
}
if (ff)
{
st=s.substr(i,len);
ans=cal(BigNum(st))-i-st.size()+1;
goto ppp;
}
}
ppp:
for (i=0;i {
st=s.substr(0,i);
st=(BigNum("1"+st)+1).toString();
st=st.substr(1,st.size()-1);
s2=s.substr(i,n-i);
k=get(st,s2);
if (k>=s2.size()) continue;
st=s.substr(i,n-i-k)+st;
if (st[0]=='0') continue;
tmp=cal(BigNum(st)-1)-i+1;
if (ans==BigNum(0)) ans=tmp;
else if (tmp }
if (s[0]>'0')
{
tmp=cal(BigNum(s))-n+1;
if (ans==BigNum(0)) ans=tmp;
else if (tmp } else
{
s="1"+s;
tmp=cal(BigNum(s))-n;
if (ans==BigNum(0)) ans=tmp;
else if (tmp }
cout << ans << endl;
}

作者:ascii991