Advertisement
Guest User

Untitled

a guest
Jun 18th, 2013
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <fstream>
  3. #include <sstream>
  4. #include <cstdio>
  5. #include <cstring>
  6. #include <memory.h>
  7. #include <cmath>
  8. #include <iomanip>
  9.  
  10. #include <vector>
  11. #include <queue>
  12. #include <deque>
  13. #include <stack>
  14. #include <set>
  15. #include <map>
  16. #include <list>
  17. #include <algorithm>
  18.  
  19. #define INF (2147483647)
  20.  
  21. using namespace std;
  22.  
  23. class Compressor {
  24. public:
  25.     vector<int> v;
  26.  
  27.     Compressor(vector<int> _a)
  28.     {
  29.         v.clear();
  30.         sort(_a.begin(), _a.end());
  31.         v.push_back(-INF);
  32.         v.push_back(_a[0]);
  33.         for(int _i=1; _i<(int)_a.size(); ++_i)
  34.             if(_a[_i]!=_a[_i-1])
  35.                 v.push_back(_a[_i]);
  36.         v.push_back(INF);
  37.     }
  38.     int size()
  39.     {
  40.         return v.size();
  41.     }
  42.     int get(int a)
  43.     {
  44.         return lower_bound(v.begin(), v.end(), a) - v.begin();
  45.     }
  46. };
  47. vector<int> vv[70000];
  48.  
  49. int main()
  50. {
  51.     ios_base::sync_with_stdio(0);
  52.  
  53.     vector<int> m;
  54.     int n;
  55.     cin>>n;
  56.     int i, l, r, a;
  57.     for(i=1;i<=n;++i){
  58.         cin>>a;
  59.         m.push_back(a);
  60.     }
  61.     Compressor comp(m);
  62.     for(i=0; i<(int)m.size(); ++i){
  63.         vv[comp.get(m[i])].push_back(i+1);
  64.     }
  65.     sort(m.begin(), m.end());
  66.     cin>>n;
  67.     for(i=0;i<n;++i){
  68.         cin>>l>>r>>a;
  69.         int t = lower_bound(m.begin(), m.end(), a) - m.begin();
  70.         if(t<n && m[t]==a){
  71.             t = comp.get(a);
  72.             int tt = lower_bound(vv[t].begin(), vv[t].end(), l)-vv[t].begin();
  73.             if(tt<(int)vv[t].size() && vv[t][tt]<=r) cout<<1;
  74.             else cout<<0;
  75.  
  76.         }else cout<<0;
  77.     }
  78.  
  79.     return 0;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement