Joao_Joao

Parafusos e Porcas - C++

Sep 25th, 2020 (edited)
100
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. typedef long long ll;typedef long double llf;typedef double fl;typedef string str;typedef pair<double, double> dd;
  5. typedef vector<int> vi;typedef vector<vector<int>> vvi;typedef vector<fl> vf;typedef vector<ll> vl;
  6. typedef vector<llf> vlf;typedef vector<char> vc;typedef vector<str> vs;typedef pair<int,int> ii;
  7. # define f(i,a,b,c) for(ll i=a;i<b;i+=c)
  8. # define fd(i,a,b,c) for(ll i=a;i>=b;i-=c)
  9. # define ctoi(a) (a-'0')
  10. # define pb push_back
  11. # define eb emplace_back
  12. # define be(x) x.begin(), x.end()
  13. # define rbe(x) x.rbegin(), x.rend()
  14. # define _(x) ios::sync_with_stdio(0);cin.tie(0);cout.precision(x);cout.setf(ios::fixed);
  15.  
  16. int n, a, b, x, meio, comeco, fim;
  17. vi ns;
  18. void BB(){
  19.     if(!(binary_search(be(ns), x))){
  20.         cout<<x<<" not found\n";
  21.         return;
  22.     }
  23.     meio = ns.size()/2, --meio;
  24.     if(x==ns[meio]){
  25.         while(ns[meio]==x){
  26.             --meio;
  27.             if(meio<0)break;
  28.         }
  29.         comeco = ++meio;
  30.         while(ns[meio]==x){
  31.             ++meio;
  32.             if(meio>ns.size()-1)break;
  33.         }
  34.         fim = --meio;
  35.     }else if(x>ns[meio]){
  36.         while(x>ns[meio]){
  37.             if(ns[meio]==x)break;
  38.             ++meio;
  39.         }
  40.         comeco = meio;
  41.         while(ns[meio]==x){
  42.             ++meio;
  43.             if(meio>ns.size()-1)break;
  44.         }
  45.         fim = --meio;
  46.     }else{
  47.         while(x<ns[meio]){
  48.             if(ns[meio]==x)break;
  49.             --meio;
  50.         }
  51.         fim = meio;
  52.         while(ns[meio]==x){
  53.             --meio;
  54.             if(meio<0)break;
  55.         }
  56.         comeco = ++meio;
  57.     }
  58.     cout<<x<<" found from "<<comeco<<" to "<<fim<<'\n';
  59. }
  60. int main(){//_(0)
  61.     while(cin>>n){
  62.         while(n--){
  63.             cin>>a>>b;
  64.             f(i,a,b+1,1)ns.pb(i);
  65.         }
  66.         sort(be(ns));
  67.         cin>>x, BB();
  68.         ns.clear();
  69.     }
  70. return 0;}
  71.  
RAW Paste Data Copied