#ifdef __GNUC__ #pragma GCC optimize ("O3") #pragma GCC target ("avx") #endif #define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include//assert(); #include ///////// #define REP(i, x, n) for(int i = x; i < n; i++) #define rep(i,n) REP(i,0,n) ///////// typedef long long LL; typedef long double LD; typedef unsigned long long ULL; #define PII pair ///////// using namespace::std; // 最大公約数 template inline T gcd(T a, T b){return b == 0 ? a : gcd(b, a % b);} // 最小公倍数 template inline T lcm(T a, T b){return a * b / gcd(a, b);} //////////////////////////////// const ULL mod = 1000000007; vector Bpow; struct hash64{ vector hashVal; void set(string &str){ int size = str.size(); unsigned long long val=0; hashVal.resize(0); for(int i=0;i> str;//調べる対象 hash64 A,B; int Asize,Bsize; Asize = str.size(); A.makeBpow( Asize ); A.set(str); int M; cin >> M; int ans = 0;//25*10**(4+3) ULL Bhash; for(int i=0;i> pat;// Bsize = pat.size(); B.set(pat); Bhash = B.getHash(0,Bsize); for(int j=0;j