Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <stack>
- #define ulti_pos sin_usar.top() ///pos de la ultima letra guardada
- #define ulti_let cadena[ulti_pos] ///la ultima letra guardada
- using namespace std;
- void conecta ( const string cadena, vector<int> &pares )
- {
- stack<int> sin_usar; ///para guardar los sin_usaros de las letras sin usar;
- ///string reduced; ///para guardar las letras sin usar;
- int c=0;
- for (int i=0; i<cadena.size(); i++) /// corregi el size
- {
- char letra = cadena[i];
- if ( (sin_usar.size())&& (ulti_let!=letra) ) ///(si hay ulti_let) y esa es igua a la letra... se cancelan
- {
- c++;
- pares.push_back(ulti_pos);
- pares.push_back(i);
- sin_usar.pop();
- ///reduced.pop_back(); /// corregi, ahora reduce
- }
- else
- {
- sin_usar.push(i);
- ///reduced.push_back( letra ); /// corregi, ahora reduce
- }
- }
- }
- int main()
- {
- string cadena;
- vector<int> pares;
- cin>>cadena;
- conecta(cadena, pares);
- for (int i=0; i<pares.size(); i+=2)
- cout<<1+pares[i]<<" "<<1+pares[i+1]<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement