SHARE
TWEET

Untitled

a guest Oct 21st, 2019 63 in 4 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4.  
  5. using namespace std;
  6.  
  7. bool elemento_situado(const vector<int>& vect, int ini, int fin);
  8.  
  9. int main() {
  10.     int nIters;
  11.     cin >> nIters;
  12.     for (int i = 0; i < nIters; i++) {
  13.         int vectSize;
  14.         cin >> vectSize;
  15.         vector<int> vectInt(vectSize);
  16.         for (int j = 0; j < vectSize; j++) {
  17.             int input;
  18.             cin >> input;
  19.             vectInt[j] = input;
  20.         }
  21.         if (elemento_situado(vectInt, 0, vectSize - 1))
  22.             cout << "SI" << endl;
  23.         else
  24.             cout << "NO" << endl;
  25.     }
  26.     return 0;
  27. }
  28.  
  29. bool elemento_situado(const vector<int>& vect, int ini, int fin) {
  30.  
  31.     //Revisa que no esté vacío y si los valores del vector están dentro de las posiciones
  32.     if (fin >= 0 && vect[fin] >= ini && vect[ini] <= fin) {
  33.         //Si el elemento solo tiene un elemento
  34.         if (ini == fin)
  35.             return (vect[ini] == ini);
  36.         else {
  37.             int mit = (ini + fin) / 2;
  38.             //Si esta en el lado izquierdo sale, si no pasa al derecho, si tampoco entonces devuelve false
  39.             if (elemento_situado(vect, ini, mit) == true)
  40.                 return true;
  41.             else if (elemento_situado(vect, mit + 1, fin) == true)
  42.                 return true;
  43.             else
  44.                 return false;
  45.         }
  46.     }
  47.     else
  48.         return false;
  49. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top