#include using namespace std; int main(){ int n; cin >> n; vector genes(n); for(int genes_i = 0; genes_i < n; genes_i++){ cin >> genes[genes_i]; } vector health(n); for(int health_i = 0; health_i < n; health_i++){ cin >> health[health_i]; } int s; cin >> s; int minV = 1000000000, maxV = 0, ans = 0; for(int a0 = 0; a0 < s; a0++){ ans = 0; int first; int last; string d; cin >> first >> last >> d; map m; for(int i = first ; i < last; i++){ int found = 0; if(m[genes[i]]){ ans += m[genes[i]] * health[i]; continue; } found = d.find(genes[i], 0); int cnt = 0; while(found != d.npos) { cnt++; found = d.find(genes[i], found + 1); //found++; } ans += cnt * health[i]; cout << i << " " << cnt << " "; cout << ans << "\n"; } m[genes[i]] = cnt; minV = min(minV, ans); maxV = max(maxV, ans); //cout << endl; // your code goes here } cout << minV << " " << maxV << "\n"; return 0; }