Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- int a[100007],n;
- map<int,int>mp1,mp2;
- int main()
- {
- int c=0;
- stack<int>s;
- vector<int>v;
- map<int, int>::iterator it;
- scanf("%d",&n);
- int f=0;
- for(int i=0; i<n; ++i)
- {
- scanf("%d",&a[i]);
- }
- for(int i=0; i<n; ++i)
- {
- int x=abs(a[i]);
- s.push(a[i]);
- mp1[x]+=a[i];
- if(mp1[x]==0)
- {
- mp2[x]=1;
- s.pop();
- s.pop();
- }
- if(s.size()==0)
- {
- v.push_back(i+1);
- ++c;
- mp1.clear();
- mp2.clear();
- }
- }
- printf("%d\n",v.size());
- for(int i=0; i<v.size(); ++i)
- {
- printf("%d ",v[i]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement