fork(1) download
  1. #include <iostream>
  2. #include <string.h>
  3. #include <stack>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9. int ile_prob;
  10. cin>>ile_prob;
  11. while (ile_prob--)
  12. {
  13. stack <char> stos;
  14. char linijka [1000000];
  15. cin>>linijka;
  16.  
  17. int dlugosc_linijki=strlen(linijka);
  18. stos.push(linijka[dlugosc_linijki-1]);
  19. int wartosc_ASCII=0, wartosc2_ASCII=0, bufor=1, x, y;
  20. for (int i=0; i<dlugosc_linijki; i++)
  21. {
  22. x=dlugosc_linijki-bufor;
  23. y=dlugosc_linijki-(i+2);
  24. wartosc_ASCII=linijka[x];
  25. wartosc2_ASCII=linijka[y];
  26.  
  27. if (wartosc2_ASCII>wartosc_ASCII)
  28. {
  29. bufor=(i+2);
  30. stos.push(linijka[y]);
  31. }
  32. if (wartosc_ASCII==wartosc2_ASCII)
  33. {
  34. stos.push(linijka[y]);
  35. bufor++;
  36. }
  37. }
  38. bool sprawdzam=stos.empty();
  39. while (sprawdzam==0)
  40. {
  41. cout<<stos.top();
  42. stos.pop();
  43. sprawdzam=stos.empty();
  44. }
  45. cout<<"\n";
  46. }
  47. return 0;
  48. }
Success #stdin #stdout 0s 4280KB
stdin
2
klkkn
klKKnNLlNL
stdout
n
nlNL