Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.79 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. struct stiva
  4. { int v[1002][3],varf;
  5. };
  6. stiva st;
  7. int push (stiva &s,int l,int x)
  8. { if (s.varf < 1001)
  9. {s.varf++;
  10. s.v[s.varf][1]=l;
  11. s.v[s.varf][2]=x;
  12. return 1;
  13. }
  14. else return 0;
  15. }
  16. int pop ( stiva &s)
  17. { if (s.varf<=0)
  18. return 0;
  19. else {s.varf--;
  20. return 1;}
  21. }
  22. int main ()
  23. { int v1[1001],n;
  24. cin>>n;
  25. for (int i=1;i<=n; i++)
  26. cin>>v1[i];
  27. for (int i=1;i<=n;i++)
  28. {if (st.varf==0 || st.v[st.varf][1]>=v1[i])
  29. push (st,v1[i],i);
  30. else {while (st.varf>0 && st.v[st.varf][1]<v1[i])
  31. pop (st);
  32. push (st,v1[i],i);}
  33. }
  34. cout<<st.varf<<endl;
  35. for (int i=1;i<=st.varf;i++)
  36. cout<<st.v[i][2]<<" ";
  37. return 0;
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement