Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define max 1000000
- #define pb push_back
- #define pairs pair<int, int>
- #define vi vector<int>
- #define vb vector<bool>
- #define vii vector<pairs>
- #define lb lower_bound
- #define ub upper_bound
- #define lli long long int
- #define endl '\n'
- #define FastInput ios_base::sync_with_stdio(false), cin.tie(NULL);
- #define Cases cout << "Case " << ++Case << ": ";
- #define __test int tt; int Case=0; cin >> tt; while(tt--)
- #define read(x) freopen(x, "r", stdin)
- #define write(x) freopen(x, "w", stdout)
- #define InputArray(a,n) for(int i=0;i<n;i++) cin >> a[i];
- #define CopyArray(a,temp,n) for(int i=0;i<n;i++) temp[i]=a[i];
- #define PrintArray(a,n) for(int i=0;i<n;i++) cout << a[i] << " "; cout << endl;
- using namespace std;
- int A[1000000];
- bool isExist(int arr[], int low, int high, int value) {
- while(low <= high) {
- int mid = (low + high) / 2;
- if(arr[mid] == value) {
- return true;
- }
- if(arr[mid] > value) {
- high = mid - 1;
- } else {
- low = mid + 1;
- }
- }
- return false;
- }
- void marge(int low, int mid, int high) {
- int l[100000], r[100000], n1, n2;
- n1 = mid - low + 1;
- n2 = high - mid;
- for(int i = 0; i < n1; i++) {
- l[i] = A[low + i];
- }
- for(int i = 0; i < n2; i++) {
- r[i] = A[mid + i + 1];
- }
- l[n1] = r[n2] = 10000000;
- int i = 0, j = 0;
- for(int k = low; k <= high; k++) {
- if(l[i] <= r[j]) {
- A[k] = l[i];
- i++;
- } else {
- A[k] = r[j];
- j++;
- }
- }
- }
- void margeSort(int low, int high) {
- int mid;
- if(low < high) {
- mid = (low + high) / 2;
- margeSort(low, mid);
- margeSort(mid + 1, high);
- marge(low, mid, high);
- }
- }
- int main() {
- #ifdef Niloy
- read("input.txt");
- write("output.txt");
- #endif
- int n, q;
- cin >> n >> q;
- InputArray(A, n);
- margeSort(0, n - 1);
- for (int i = 0; i < q; i++) {
- int l, r, x;
- cin >> l >> r >> x;
- bool ans = isExist(A, l - 1, r - 1, x);
- if(ans) {
- cout << "YES\n";
- } else {
- cout << "NO\n";
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement