Submission #290569

# Submission time Handle Problem Language Result Execution time Memory
290569 2020-09-04T03:56:31 Z jairRS Split the Attractions (IOI19_split) C++17
7 / 100
87 ms 9464 KB
#include "split.h"
using namespace std;
typedef vector<int> vi;
typedef vector<vi> vvi;

vvi adj;
vi degree;
int ga, gb, gc;
vector<bool> visited(200000);

void dfs(int src, int prev = -1)
{
	if (visited[src])
		return;
	visited[src] = true;
	if (gc > 0)
	{
		degree[src] = 3;
		gc--;
	}
	else if (gb > 0)
	{
		degree[src] = 2;
		gb--;
	}
	else if (ga > 0)
	{
		degree[src] = 1;
		ga--;
	}

	for (int a : adj[src])
	{
		if (a != prev)
		{
			dfs(a, src);
			break;
		}
	}
}

vector<int> find_split(int n, int a, int b, int c, vector<int> p, vector<int> q)
{
	ga = a;
	gb = b;
	gc = c;
	degree = vi(n, 0);
	adj = vvi(n);
	for (int i = 0; i < p.size(); i++)
	{
		adj[p[i]].push_back(q[i]);
		adj[q[i]].push_back(p[i]);
		degree[p[i]]++;
		degree[q[i]]++;
	}
	bool loop = true;
	for (int i = 0; i < n; i++)
	{
		if (degree[i] == 1)
		{
			dfs(i);
			loop = false;
			break;
		}
	}
	if (loop)
		dfs(0);
	return degree;
}

Compilation message

split.cpp: In function 'std::vector<int> find_split(int, int, int, int, std::vector<int>, std::vector<int>)':
split.cpp:49:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   49 |  for (int i = 0; i < p.size(); i++)
      |                  ~~^~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 256 KB ok, correct split
2 Correct 0 ms 256 KB ok, correct split
3 Correct 0 ms 384 KB ok, correct split
4 Correct 0 ms 384 KB ok, correct split
5 Correct 0 ms 384 KB ok, correct split
6 Correct 1 ms 384 KB ok, correct split
7 Correct 81 ms 9336 KB ok, correct split
8 Correct 85 ms 9344 KB ok, correct split
9 Correct 81 ms 9464 KB ok, correct split
10 Correct 87 ms 9336 KB ok, correct split
11 Correct 82 ms 9364 KB ok, correct split
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB ok, correct split
2 Correct 0 ms 384 KB ok, correct split
3 Incorrect 0 ms 384 KB invalid split: #1=0, #2=3, #3=2
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 384 KB invalid split: #1=1, #2=2, #3=2
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 256 KB invalid split: #1=1, #2=5, #3=3
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 256 KB ok, correct split
2 Correct 0 ms 256 KB ok, correct split
3 Correct 0 ms 384 KB ok, correct split
4 Correct 0 ms 384 KB ok, correct split
5 Correct 0 ms 384 KB ok, correct split
6 Correct 1 ms 384 KB ok, correct split
7 Correct 81 ms 9336 KB ok, correct split
8 Correct 85 ms 9344 KB ok, correct split
9 Correct 81 ms 9464 KB ok, correct split
10 Correct 87 ms 9336 KB ok, correct split
11 Correct 82 ms 9364 KB ok, correct split
12 Correct 1 ms 384 KB ok, correct split
13 Correct 0 ms 384 KB ok, correct split
14 Incorrect 0 ms 384 KB invalid split: #1=0, #2=3, #3=2
15 Halted 0 ms 0 KB -