Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long ll;typedef long double llf;typedef double fl;typedef string str;typedef pair<double, double> dd;
- typedef vector<int> vi;typedef vector<vector<int>> vvi;typedef vector<fl> vf;typedef vector<ll> vl;
- typedef vector<llf> vlf;typedef vector<char> vc;typedef vector<str> vs;typedef pair<int,int> ii;
- # define f(i,a,b,c) for(ll i=a;i<b;i+=c)
- # define fd(i,a,b,c) for(ll i=a;i>=b;i-=c)
- # define ctoi(a) (a-'0')
- # define pb push_back
- # define eb emplace_back
- # define be(x) x.begin(), x.end()
- # define rbe(x) x.rbegin(), x.rend()
- # define _(x) ios::sync_with_stdio(0);cin.tie(0);cout.precision(x);cout.setf(ios::fixed);
- int n, a, b, x, meio, comeco, fim;
- vi ns;
- void BB(){
- if(!(binary_search(be(ns), x))){
- cout<<x<<" not found\n";
- return;
- }
- meio = ns.size()/2, --meio;
- if(x==ns[meio]){
- while(ns[meio]==x){
- --meio;
- if(meio<0)break;
- }
- comeco = ++meio;
- while(ns[meio]==x){
- ++meio;
- if(meio>ns.size()-1)break;
- }
- fim = --meio;
- }else if(x>ns[meio]){
- while(x>ns[meio]){
- if(ns[meio]==x)break;
- ++meio;
- }
- comeco = meio;
- while(ns[meio]==x){
- ++meio;
- if(meio>ns.size()-1)break;
- }
- fim = --meio;
- }else{
- while(x<ns[meio]){
- if(ns[meio]==x)break;
- --meio;
- }
- fim = meio;
- while(ns[meio]==x){
- --meio;
- if(meio<0)break;
- }
- comeco = ++meio;
- }
- cout<<x<<" found from "<<comeco<<" to "<<fim<<'\n';
- }
- int main(){//_(0)
- while(cin>>n){
- while(n--){
- cin>>a>>b;
- f(i,a,b+1,1)ns.pb(i);
- }
- sort(be(ns));
- cin>>x, BB();
- ns.clear();
- }
- return 0;}
Add Comment
Please, Sign In to add comment