Guest User

Untitled

a guest
Oct 23rd, 2017
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.18 KB | None | 0 0
  1. #pragma comment(linker, "/STACK:16777216")
  2. //#include "stdafx.h"
  3. #include <iostream>
  4. #include <stdio.h>
  5. #include <cmath>
  6. #include <set>
  7. #include <map>
  8. #include <stack>
  9. #include <queue>
  10. #include <list>
  11. #include <vector>
  12. #include <string>
  13. #include <algorithm>
  14. #include <bitset>
  15.  
  16. using namespace std;
  17.  
  18. #define FOR(i,a,b) for(int i=(a);i<(b);++i)
  19. #define FORN(i,a,b) for(int i=(a);i<=(b);++i)
  20. #define SQR(x) (x)*(x)
  21. #define INF 1000*1000*1000
  22. #define EPS 1e-11
  23.  
  24. typedef long long  LL;
  25.  
  26. map<int,vector<int> > m;
  27.  
  28. int main()
  29. {
  30.     //freopen("input.txt","r",stdin);
  31.     //freopen("output.txt","w",stdout);
  32.     int n;
  33.     scanf("%d",&n);
  34.     FOR(i,0,n)
  35.     {
  36.         int k;
  37.         scanf("%d",&k);
  38.         vector<int> v;
  39.         v.push_back(i+1);
  40.         if (!m.insert(make_pair(k,v)).second) m[k].push_back(i+1);
  41.     }
  42.     int k;
  43.     scanf("%d",&k);
  44.     FOR(i,0,k)
  45.     {
  46.         int a,b,val;
  47.         scanf("%d%d%d",&a,&b,&val);
  48.         if (m.find(val)==m.end()) printf("0");
  49.         else
  50.         {
  51.             vector<int> v=m[val];
  52.             int l=0,r=v.size();
  53.             int res=0;
  54.             while (l<r)
  55.             {
  56.                 int mid=(l+r)/2;
  57.                 if (v[mid]>=a && v[mid]<=b)
  58.                 {
  59.                     res=1;
  60.                     break;
  61.                 }
  62.                 v[mid]>b ? r=mid : l=mid+1;
  63.             }
  64.             printf("%d",res);
  65.         }
  66.     }
  67.     return 0;
  68. }
Add Comment
Please, Sign In to add comment