#include #include int main(){ int num; scanf("%d\n",&num); int **samples = (int**)malloc(num*sizeof(int*)); int i = 0; for(i = 0; i < num; i++){ samples[i] = (int*)calloc(2,sizeof(int)); } for(i = 0; i < num; i++){ int ti,vi; scanf("%d %d\n", &ti, &vi); samples[i][0] = ti; samples[i][1] = vi; } int c; int u = 0; scanf("%d\n", &c); for(i = 0; i < c; i++){ char rj; char fj; char c; for(u = 0; u < 3; u++){ c = getchar(); if(u == 0){ rj = c; } } for(u = 0; u < 4; u++){ c = getchar(); if(u == 1){ fj = c; } } int lj; int counter = 0; scanf("%d\n",&lj); u =0; for(u = 0; u < num; u++){ int j = u-1; if(j < 0){ continue; } int min = 100000; int max = -100000; int avg = 0; int count = 0; while(j >= 0 && samples[j][0] >= samples[u][0] - lj){ if(samples[j][1] > max){ max = samples[j][1]; } if(samples[j][1] < min){ min = samples[j][1]; } avg += samples[j][1]; count++; j--; } if(count == 0){ continue; } avg = avg / count; if(rj == 'g'){ if(fj == 'i'){ if(samples[u][1] > min){ counter++; } } if(fj == 'a'){ if(samples[u][1] > max){ counter++; } } if(fj == 'v'){ if(samples[u][1] > avg){ counter++; } } } if(rj == 'l'){ if(fj == 'i'){ if(samples[u][1] < min){ counter++; } } if(fj == 'a'){ if(samples[u][1] < max){ counter++; } } if(fj == 'v'){ if(samples[u][1] < avg){ counter++; } } } } printf("%d\n",counter); } for(i = 0; i < num; i++){ free(samples[i]); } free(samples); return 0; }