Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdio>
- #include <cctype>
- #include <string>
- #include <cmath>
- #include <vector>
- #include <algorithm>
- #include <stack>
- #include <queue>
- #include <map>
- #include <set>
- #include <sstream>
- #include <ctime>
- #include <cassert>
- using namespace std;
- #define GI ({int t;scanf("%d",&t);t;})
- #define GL ({LL t;scanf("%lld",&t);t;})
- #define GD ({double t;scanf("%lf",&t);t;})
- #define FOR(i,a,b) for(int i=a;i<b;i++)
- #define REP(i,n) FOR(i,0,n)
- #define ROF(i,a,b) for(int i=a;i>b;i--)
- #define SET(x,a) memset(x,a,sizeof(x));
- #define all(a) a.begin(),a.end()
- #define rall(a) a.rbegin(),a.rend()
- #define tr(i,a) for( typeof(a.begin()) i=a.begin();i!=a.end();i++)
- #define pb push_back
- #define sz(a) (int)(a.size())
- #define INF (int)1e9
- #define EPS (double)1e-9
- #define is istringstream
- #define os ostringstream
- #define lb lower_bound
- #define ub upper_bound
- #define bs binary_search
- typedef long long LL;
- typedef pair< int,int > ii;
- typedef vector< ii > vii;
- typedef vector < vii > vvii;
- typedef vector< int > vi;
- typedef vector< vi > vvi;
- typedef vector< string > vs;
- #define MOD 100000007
- long long powmod(long long a,long long b)
- {
- long long ans = 1;
- while(b!=0)
- {
- if(b%2!=0)
- {
- ans =(ans*a)%MOD;
- }
- a = (a*a)%MOD;
- b/=2;
- }
- return ans%MOD;
- }
- int main()
- {int m[26],a[26];
- a[0]=2;
- a[1]=2;
- a[2]=2;
- a[3]=3;
- a[4]=3;
- a[5]=3;
- a[6]=4;
- a[7]=4;
- a[8]=4;
- a[9]=5;
- a[10]=5;
- a[11]=5;
- a[12]=6;
- a[13]=6;
- a[14]=6;
- a[15]=7;
- a[16]=7;
- a[17]=7;
- a[18]=7;
- a[19]=8;
- a[20]=8;
- a[21]=8;
- a[22]=9;
- a[23]=9;
- a[24]=9;
- a[25]=9;
- m[0]=1;
- m[1]=2;
- m[2]=3;
- m[3]=1;
- m[4]=2;
- m[5]=3;
- m[6]=1;
- m[7]=2;
- m[8]=3;
- m[9]=1;
- m[10]=2;
- m[11]=3;
- m[12]=1;
- m[13]=2;
- m[14]=3;
- m[15]=1;
- m[16]=2;
- m[17]=3;
- m[18]=4;
- m[19]=1;
- m[20]=2;
- m[21]=3;
- m[22]=1;
- m[23]=2;
- m[24]=3;
- m[25]=4;
- int t;
- t=GI;
- while(t--)
- {
- string s;
- cin>>s;
- long long cnt=0;
- for(int i=0;i<s.length();i++)
- {
- if(i!=0)
- {
- if(a[s[i-1]-'a']==a[s[i]-'a'])
- {
- cnt+=(m[s[i]-'a']);
- continue;
- }
- }
- if(m[s[i]-'a']==1)
- continue;
- else
- cnt+=m[s[i]-'a']-1;
- }
- // cout<<" c "<< cnt<<endl;
- long long powermod = powmod(2,cnt);
- cout<<powermod<<endl;
- }
- //GI;
- return 0;
Add Comment
Please, Sign In to add comment