Lang:G++
Edit12345678910111213141516171819202122232425262728293031//http://hihocoder.com/contest/hiho3/problem/1#include<cstdio>#include<cstring>using namespace std;char str[1000009];char p[10009];int next[10009];int main(void){int i,j,cases;scanf("%d", &cases);while(cases--){scanf("%s", p);scanf("%s", str);int m = strlen(p);int n = strlen(str);next[0] = 0;for(i=1,j=0; i<m; ++i){while(j>0 && p[j]!=p[i])j = next[j-1];if(p[j]==p[i])++j;next[i] = j;}