#include using namespace std; #define pb push_back #define fi first #define se second #define mp make_pair #define SZ(x) ((int)(x.size())) #define FOI(i,a,n) for(int (i)=int(a);(i)<=int(n);++(i)) #define FOD(i,a,n) for(int (i)=int(a);(i)>=int(n);--(i)) #define IN(x,y) ((y).find((x))!=(y).end()) #define ALL(t) t.begin(),t.end() #define MSET(tabl,i) memset(tabl, i, sizeof(tabl)) #define PSET(x,y) fixed<= 0 && p[ind][i] != p[ind][j]) j = kmpuse[ind][j]; kmpuse[ind][1+i] = ++j; } } int KMPsea(int ind){ int j = 0; int cn = 0; FOI(i, 0, s.length()){ while(j >= 0 && s[i] != p[ind][j]) j = kmpuse[ind][j]; if(++j == p[ind].length()) {j = kmpuse[ind][j], cn++;} } return cn; } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cin>>N; FOI(i,0,N-1){ cin>>p[i]; KMPpre(i); } FOI(i,0,N-1) cin>>sc[i]; cin>>M; int mi, ma; int curr = 0; cin>>a>>b>>s; FOI(i,a,b){ curr += sc[i]*KMPsea(i); } mi = ma = curr; FOI(i,2,M){ curr = 0; cin>>a>>b>>s; FOI(j,a,b){ curr += sc[i]*KMPsea(i); } REMAX(ma, curr); REMIN(mi, curr); } cout<