#include <iostream>
#include <unordered_map>
#include <utility>
#include <sstream>
using namespace std;
unordered_map<int, bool> mp;
int main()
{
stringstream ans;
int n, cnt = 0, now_cnt = 1;
cin >> n;
for (register int i = 1; i <= n; i++)
{
int x;
cin >> x;
if (x == 1)
{
mp[i] = true;
}
}
cout << mp.size() << endl;
unordered_map<int, bool>::iterator it_end = mp.end(), real_it = mp.begin();
++real_it;
for (register unordered_map<int, bool>::iterator it = real_it; it != it_end; ++it)
{
unordered_map<int, bool>::iterator it_tmp = it;
--it_tmp;
cout << it -> first - it_tmp -> first << " ";
}
--it_end;
cout << n - (it_end -> first) + 1 << endl;
//system("pause");
return 0;
}
c++14
CF上CE怎么回事,vs没有报错啊!
好像是说什么自减运算符与迭代器不支持,但是……