Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <sstream>
- #include <cstdio>
- #include <cstring>
- #include <memory.h>
- #include <cmath>
- #include <iomanip>
- #include <vector>
- #include <queue>
- #include <deque>
- #include <stack>
- #include <set>
- #include <map>
- #include <list>
- #include <algorithm>
- #define INF (2147483647)
- using namespace std;
- class Compressor {
- public:
- vector<int> v;
- Compressor(vector<int> _a)
- {
- v.clear();
- sort(_a.begin(), _a.end());
- v.push_back(-INF);
- v.push_back(_a[0]);
- for(int _i=1; _i<(int)_a.size(); ++_i)
- if(_a[_i]!=_a[_i-1])
- v.push_back(_a[_i]);
- v.push_back(INF);
- }
- int size()
- {
- return v.size();
- }
- int get(int a)
- {
- return lower_bound(v.begin(), v.end(), a) - v.begin();
- }
- };
- vector<int> vv[70000];
- int main()
- {
- ios_base::sync_with_stdio(0);
- vector<int> m;
- int n;
- cin>>n;
- int i, l, r, a;
- for(i=1;i<=n;++i){
- cin>>a;
- m.push_back(a);
- }
- Compressor comp(m);
- for(i=0; i<(int)m.size(); ++i){
- vv[comp.get(m[i])].push_back(i+1);
- }
- sort(m.begin(), m.end());
- cin>>n;
- for(i=0;i<n;++i){
- cin>>l>>r>>a;
- int t = lower_bound(m.begin(), m.end(), a) - m.begin();
- if(t<n && m[t]==a){
- t = comp.get(a);
- int tt = lower_bound(vv[t].begin(), vv[t].end(), l)-vv[t].begin();
- if(tt<(int)vv[t].size() && vv[t][tt]<=r) cout<<1;
- else cout<<0;
- }else cout<<0;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement