Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- struct stiva
- { int v[1002][3],varf;
- };
- stiva st;
- int push (stiva &s,int l,int x)
- { if (s.varf < 1001)
- {s.varf++;
- s.v[s.varf][1]=l;
- s.v[s.varf][2]=x;
- return 1;
- }
- else return 0;
- }
- int pop ( stiva &s)
- { if (s.varf<=0)
- return 0;
- else {s.varf--;
- return 1;}
- }
- int main ()
- { int v1[1001],n;
- cin>>n;
- for (int i=1;i<=n; i++)
- cin>>v1[i];
- for (int i=1;i<=n;i++)
- {if (st.varf==0 || st.v[st.varf][1]>=v1[i])
- push (st,v1[i],i);
- else {while (st.varf>0 && st.v[st.varf][1]<v1[i])
- pop (st);
- push (st,v1[i],i);}
- }
- cout<<st.varf<<endl;
- for (int i=1;i<=st.varf;i++)
- cout<<st.v[i][2]<<" ";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement