链接:http://codeforces.com/contest/950/problem/C
贪心就好,,,
#include<bits/stdc++.h>
using namespace std;
#define maxn 200005
char s[maxn];
vector<int> v[maxn];
int main()
{
scanf("%s",s);
queue<int> q[2];
int z=0;
for(int i=0;s[i]!='\0';i++)
{
//cout<<i;
if(s[i]=='0') {
// cout<<" "<<0<<endl;
if(q[1].empty()) {
q[0].push(z);
v[z++].push_back(i);
}
else{
v[q[1].front()].push_back(i);
q[0].push(q[1].front());
q[1].pop();
}
}
else {
// cout<<" "<<1<<endl;
if(q[0].empty()) {
cout<<-1<<endl;
return 0;
}
else {
v[q[0].front()].push_back(i);
q[1].push(q[0].front());
q[0].pop();
}
}
}
if(!q[1].empty()) {cout<<-1<<endl;return 0;}
cout<<z<<endl;
for(int i=0;i<z;i++)
{
printf("%d ",v[i].size());
for(int j=0;j<v[i].size();j++)
{
printf(j==v[i].size()-1?"%d\n":"%d ",v[i][j]+1);
}
}
}