#include #include int main(){ int num; while(scanf("%d\n",&num) != EOF){ 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); i = 0; for(i = 0; i < c; i++){ char rj[4]; char fj[5]; char c; int lj; int counter = 0; scanf("%s %s %d\n", rj, fj, &lj); u =0; for(u = 0; u < num; u++){ int j = u-1; if(j < 0){ continue; } int min = 100000; int max = -100000; float 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 / (float)count; if(rj[0] == 'g'){ if(fj[1] == 'i'){ if(samples[u][1] > min){ counter++; } } if(fj[1] == 'a'){ if(samples[u][1] > max){ counter++; } } if(fj[1] == 'v'){ if((float)samples[u][1] > avg){ counter++; } } } if(rj[0] == 'l'){ if(fj[1] == 'i'){ if(samples[u][1] < min){ counter++; } } if(fj[1] == 'a'){ if(samples[u][1] < max){ counter++; } } if(fj[1] == 'v'){ if((float)samples[u][1] < avg){ counter++; } } } } printf("%d\n",counter); } for(i = 0; i < num; i++){ free(samples[i]); } free(samples); } return 0; }