Pagini recente » Cod sursa (job #3246116) | Cod sursa (job #724497) | Cod sursa (job #1807874) | Cod sursa (job #3232583) | Cod sursa (job #2153396)
#include <iostream>
#include <algorithm>
using namespace std;
int N, M;
struct nod {
int val, poz;
} D[100003], T[100003];
int sumD[100003], sumT[100003];
bool cmp(nod x, nod y) {
return y.val > x.val;
}
bool cmp1(nod x, nod y) {
return y.poz > x.poz;
}
int main() {
cin >> N >> M;
for(int i = 1; i <= N; i++)
cin >> T[i].val >> D[i].val, T[i].poz = D[i].poz = i;
sort(T + 1, T + N + 1, cmp);
sort(D + 1, D + N + 1, cmp);
for(int i = N; i >= 1; i--)
T[i].val -= T[i - 1].val, D[i].val -= D[i - 1].val;
sort(T + 1, T + N + 1, cmp1);
sort(D + 1, D + N + 1, cmp1);
for(int i = 1; i <= N; i++)
sumT[i] = sumT[i - 1] + T[i].val, sumD[i] = sumD[i - 1] + D[i].val;
for(int i = 1; i <= M; i++) {
int x, y;
cin >> x >> y;
cout << (sumT[y] - sumT[x - 1] < sumD[y] - sumD[x - 1]) << "\n";
}
return 0;
}