Submission #321066

# Submission time Handle Problem Language Result Execution time Memory
321066 2020-11-10T20:08:57 Z VodkaInTheJar Garbage (POI11_smi) C++14
10 / 100
2332 ms 262148 KB
#include <bits/stdc++.h>
#pragma GCC optimize("O3")
#define endl '\n'

using namespace std;

const int maxn = 1e5 + 3; 

int n, m; 
set <int> adj[maxn];
void read()
{
	cin >> n >> m;
	for (int i = 1; i <= m; i++)
	{
		int a, b, s, t; 
		cin >> a >> b >> s >> t;
		
		if (s == t)
		continue;
		
		adj[a].insert(b);
		adj[b].insert(a);
	}
}
vector <vector <int> > ans;
bool used[maxn];
void solve()
{
	for (int i = 1; i <= n; i++)
	if ((int)adj[i].size() % 2 == 1)
	{
		cout << "NIE" << endl;
		return;
	}
	
	for (;;)
	{
		for (int i = 1; i <= n; i++)
		used[i] = false;
		
		bool is = false;
		for (int i = 1; i <= n; i++)
		if (!adj[i].empty())
		{
			vector <int> order;
			order.push_back(i);
			used[i] = true; 
			
			for (;;)
			{
				int ver = order.back();
				auto it = adj[ver].begin();
				if ((int)order.size() != 1 && *it == order[(int)order.size()-2])
				it++;
				
				if (used[*it])
				{
					vector <int> cycle; 
					cycle.push_back(*it);
					for (int i = (int)order.size()-1; i >= 0 && order[i] != *it; i--)
					cycle.push_back(order[i]);
					
					for (int i = 0; i < (int)cycle.size()-1; i++)
					{
						adj[cycle[i]].erase(cycle[i+1]);
						adj[cycle[i+1]].erase(cycle[i]);
					}
					
					adj[cycle[0]].erase(cycle.back());
					adj[cycle.back()].erase(cycle[0]);
					ans.push_back(cycle);
					
					break;
				}
				
				order.push_back(*it);
			}
			
			is = true;
			break;
		}
		
		if (!is)
		break;
	}
	
	cout << (int)ans.size() << endl;
	for (auto i: ans)
	{
		cout << (int)i.size() << " ";
		for (auto j: i)
		cout << j << " ";
		
		assert(!i.empty());
		cout << i[0] << endl; 
	}
}

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);

	read();
	solve();
}
# Verdict Execution time Memory Grader output
1 Correct 3 ms 5100 KB Output is correct
# Verdict Execution time Memory Grader output
1 Runtime error 418 ms 262148 KB Execution killed with signal 9 (could be triggered by violating memory limits)
# Verdict Execution time Memory Grader output
1 Runtime error 411 ms 262148 KB Execution killed with signal 9 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 412 ms 262148 KB Execution killed with signal 9 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 404 ms 262148 KB Execution killed with signal 9 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 423 ms 262148 KB Execution killed with signal 9 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 525 ms 262148 KB Execution killed with signal 9 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 1448 ms 262148 KB Execution killed with signal 9 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 1582 ms 262148 KB Execution killed with signal 9 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 2332 ms 262148 KB Execution killed with signal 9 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -