#define ll long long const int N =1e5+9; int t; ll ans,tmp; char s[N]; int main() { scanf("%d",&t); while(t--) { scanf("%s",s); int l=strlen(s); if(s[0]=='1') ans=1ll; else ans=2ll; tmp=ans; for(int i=1;i<l;i++) { //tmp:到s[i-1](终点)的所有代价和 //都在重复 /* 例如 : 2 0 1 2 1 2 3 0 1 2 3 1 2 3 2 3//多的 */ if(s[i]=='1') tmp+=1;//由s[i-1]到s[i]的代价 else tmp+=2; if(s[i]==s[i-1]) tmp+=(2*i); else tmp+=i;//i条路,到3的时候,i==2 ,而前面由0 1 2 3|1 2 3两条路 /* 0 0 :s[i-1]到s[i]的代价为2 1 1 :s[i-1]到s[i]的代价为2 0 1 :s[i-1]到s[i]的代价为1 1 0 : s[i-1]到s[i]的代价为1 */ ans+=tmp;//累加一每个点为终点的代价和 } printf("%lld\n",ans); } return 0; }