#include #include #define MAX 200000 #define ll long long using namespace std; int prefix_array(string pattern,string line){ int j=0,count=0; int n=pattern.length(); vector v(n); v[0]=0; for(int i=1;i0 && pattern[i]!=pattern[j]) j=v[j-1]; if(pattern[i]==pattern[j]) j++; v[j]=j; } for(int i=0;i>n; int h[MAX]; string g[MAX]; unordered_map myMap; for(int i=0;i>g[i]; for(int i=0;i>h[i]; cin>>s; int maximum=INT_MIN,minimum=INT_MAX; for(int i=0;i>first>>last>>d; for(int j=first;j<=last;j++){ sum+=(h[j]*prefix_array(g[j],d)); } maximum=max(maximum,sum); minimum=min(minimum,sum); } cout<