#include #include #include using namespace std; #define ll int int main() { ll N; while(cin >> N) { ll t[N], s[N]; for(ll i =0; i> t[i] >> s[i]; } ll M; cin >> M; ll fn[M], agg[M], dt[M]; for(ll i =0; i> dt[i]; } for(ll i =0; i ss; ss.insert(s[0]); ll first = 0; for(ll j = 1; j < N; j++) { ll cur_t = t[j]; while(t[first] < (cur_t - dt[i])) { ss.erase(ss.find(s[first])); first++; } if(ss.size() > 0 && ((fn[i] == 0 && s[j] < *(ss.begin())) || (fn[i] == 1 && s[j] > *(ss.begin())))) { cnt++; } ss.insert(s[j]); } } if(agg[i] == 2) //max { multiset > ss; ss.insert(s[0]); ll first = 0; for(ll j = 1; j < N; j++) { ll cur_t = t[j]; while(t[first] < (cur_t - dt[i])) { ss.erase(ss.find(s[first])); first++; } if(ss.size() > 0 && ((fn[i] == 0 && s[j] < *(ss.begin())) || (fn[i] == 1 && s[j] > *(ss.begin())))) { cnt++; } ss.insert(s[j]); } } if(agg[i] == 1) //avg { ll sum = s[0]; ll first = 0; for(ll j = 1; j < N; j++) { ll cur_t = t[j]; while(t[first] < (cur_t - dt[i])) { sum -= s[first]; first++; } if(sum > 0 && ((fn[i] == 0 && s[j]*(j-first) < sum) || (fn[i] == 1 && s[j]*(j-first) > sum))) { cnt++; } sum += s[j]; } } cout << cnt << "\n"; } } return 0; }