CF949A/950C Zebras

时间:2023-03-09 01:48:12
CF949A/950C Zebras

思路:

贪心乱搞。

实现:

 #include <bits/stdc++.h>
using namespace std;
vector<vector<int>> v;
int main()
{
string s;
while (cin >> s)
{
set<int> x, y;
for (int i = ; i < v.size(); i++) v[i].clear();
bool no_ans = false;
for (int i = ; i < s.length(); i++)
{
if (s[i] == '')
{
if (x.empty()) { no_ans = true; break; }
auto be = x.begin();
int tmp = *be;
x.erase(be);
v[tmp].push_back(i);
y.insert(tmp);
}
else
{
if (y.empty()) { v.push_back(vector<int>()); y.insert(v.size() - ); }
auto be = y.begin();
int tmp = *be;
y.erase(be);
v[tmp].push_back(i);
x.insert(tmp);
}
}
for (int i = ; i < v.size(); i++)
{
if (v[i].size() && s[v[i].back()] == '') no_ans = true;
}
if (no_ans) cout << - << endl;
else
{
cout << v.size() << endl;
for (int i = ; i < v.size(); i++)
{
cout << v[i].size() << " ";
for (int j = ; j < v[i].size(); j++)
{
cout << v[i][j] + << " ";
}
cout << endl;
}
}
}
return ;
}