| 1234567 |
- #include <algorithm>
- #include <iostream>
- #include <set>
- #include <utility>
- #include <vector>
- using namespace std;
- int main(){ios::sync_with_stdio(false);cin.tie(nullptr);int n,m,x;cin>>n>>m>>x;vector<pair<int,int>>seg(m);for(auto&[l,r]:seg)cin>>l>>r;set<int>answer;auto by_left=seg;sort(by_left.begin(),by_left.end());int right=x;for(size_t i=0;i<by_left.size()&&by_left[i].first<=right;++i){if(by_left[i].second>x)answer.insert(by_left[i].second);right=max(right,by_left[i].second);}auto by_right=seg;sort(by_right.begin(),by_right.end(),[](auto a,auto b){return a.second>b.second;});int left=x;for(size_t i=0;i<by_right.size()&&by_right[i].second>=left;++i){if(by_right[i].first<x)answer.insert(by_right[i].first);left=min(left,by_right[i].first);}for(int v:answer)cout<<v<<' ';cout<<'\n';}
|