Основное
 
 
Отправитель Задача Язык Вердикт Время Память Отослано Протест.  
46738341 Дорешивание:
jeeraffo
950C - 45 GNU C++11 Полное решение 514 мс 7804 КБ 2018-12-08 01:12:18 2018-12-08 01:12:18
→ Исходный код
#include <bits/stdc++.h>
using namespace std;

void solve()
{
	string s;
	cin >> s;

	int z = 0;
	int az = 0;

	queue<int> curz;
	queue<int> curaz;

	vector<vector<int> > v;

	for (int i = 0; i < s.length(); i++)
	{
		if (s[i] == '0') 
		{
			if (az != 0)
			{
				az--;
				z++;

				v[curaz.front()].push_back(i + 1);

				curz.push(curaz.front());
				curaz.pop();
			}

			else
			{
				z++;
				vector<int> f;
				f.push_back(i + 1);
				v.push_back(f);
				curz.push(v.size() - 1);
			}
		}

		else
		{
			if (z == 0)
			{
				cout << -1 << endl;
				return;
			}

			else
			{
				z--;
				az++;

				v[curz.front()].push_back(i + 1);

				curaz.push(curz.front());
				curz.pop();
			}
		}
	}

	if (az != 0) 
	{
		cout << -1 << endl;
		return;
	}

	cout << v.size() << endl;

	for (int i = 0; i < v.size(); i++)
	{
		cout << v[i].size() << " ";

		for (int j = 0; j < v[i].size(); j++)
		{
			if (j) cout << " ";
			cout << v[i][j];
		}

		cout << endl; 
	}
}

int main()
{
	solve();
	return 0;
}
?
Время: ? ms, память: ? КБ
Вердикт: ?
Ввод
?
Вывод участника
?
Ответ жюри
?
Комментарий чекера
?
Диагностика
?
Показать детали тестирования