답안 #792748

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
792748 2023-07-25T08:29:08 Z mousebeaver 슈퍼트리 잇기 (IOI20_supertrees) C++14
11 / 100
161 ms 22024 KB
#include "supertrees.h"
#include <bits/stdc++.h>
using namespace std;

int construct(vector<vector<int>> p) 
{
	int n = p.size();
	vector<bool> used(n, false);
	vector<vector<int>> adjmatrix(n, vector<int> (n, 0));

	for(int i = 0; i < n; i++)
	{
		if(used[i]) continue;

		//Collect the component:
		vector<int> component(0);
		for(int j = 0; j < n; j++)
		{
			if(p[i][j] == 3)
			{
				return 0;
			}
			if(p[i][j] > 0)
			{
				component.push_back(j);
				used[j] = true;
			}
		}

		for(int j : component)
		{
			if(count(p[j].begin(), p[j].end(), 0) != n- (int) component.size())
			{
				return 0;
			}
			for(int k : component)
			{
				if(p[k][j] == 0)
				{
					return 0;
				}
			}
		}

		//Build the forest:
		vector<bool> tree(component.size(), false);
		vector<vector<int>> forest(0);
		for(int j = 0; j < (int) component.size(); j++)
		{
			if(tree[j]) continue;
			vector<int> t(0);
			for(int k = 0; k < (int) component.size(); k++)
			{
				if(p[j][k] == 1)
				{
					t.push_back(k);
					tree[k] = true;
				}
			}
			forest.push_back(t);

			//Build the tree:
			for(int k = 0; k < (int) t.size()-1; k++)
			{
				adjmatrix[t[k]][t[k+1]] = 1;
				adjmatrix[t[k+1]][t[k]] = 1;
			}
		}

		//Test the partitioning:
		for(int j = 0; j < (int) forest.size(); j++)
		{
			for(int a : forest[j])
			{
				for(int k = 0; k < (int) forest.size(); k++)
				{
					for(int b : forest[k])
					{
						if((k == j && p[a][b] != 1) ||
							(k != j && p[a][b] != 2))
							{
								return 0;
							}
					}
				}
			}
		}

		//Connect the trees:
		if(forest.size() == 2)
		{
			return 0;
		}
		if(forest.size() > 2)
		{
			for(int j = 0; j < (int) forest.size()-1; j++)
			{
				adjmatrix[forest[j][0]][forest[j+1][0]] = 1;
				adjmatrix[forest[j+1][0]][forest[j][0]] = 1;
			}
			adjmatrix[forest[0][0]][forest[forest.size()-1][0]] = 1;
			adjmatrix[forest[forest.size()-1][0]][forest[0][0]] = 1;
		}
	}

	build(adjmatrix);
	return 1;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 6 ms 1108 KB Output is correct
7 Correct 155 ms 22024 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 6 ms 1108 KB Output is correct
7 Correct 155 ms 22024 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 1 ms 252 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 7 ms 1112 KB Output is correct
13 Correct 156 ms 22008 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 3 ms 724 KB Output is correct
17 Correct 60 ms 12048 KB Output is correct
18 Correct 0 ms 212 KB Output is correct
19 Correct 0 ms 212 KB Output is correct
20 Incorrect 14 ms 3284 KB Answer gives possible 0 while actual possible 1
21 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 7 ms 1120 KB Output is correct
9 Correct 153 ms 22020 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 7 ms 1108 KB Output is correct
13 Correct 161 ms 21964 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 3 ms 724 KB Output is correct
17 Correct 60 ms 12048 KB Output is correct
18 Correct 0 ms 212 KB Output is correct
19 Correct 1 ms 212 KB Output is correct
20 Correct 0 ms 212 KB Output is correct
21 Incorrect 15 ms 3284 KB Answer gives possible 0 while actual possible 1
22 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Incorrect 0 ms 212 KB Answer gives possible 0 while actual possible 1
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 6 ms 1108 KB Output is correct
7 Correct 155 ms 22024 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 1 ms 252 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 7 ms 1112 KB Output is correct
13 Correct 156 ms 22008 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 3 ms 724 KB Output is correct
17 Correct 60 ms 12048 KB Output is correct
18 Correct 0 ms 212 KB Output is correct
19 Correct 0 ms 212 KB Output is correct
20 Incorrect 14 ms 3284 KB Answer gives possible 0 while actual possible 1
21 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 6 ms 1108 KB Output is correct
7 Correct 155 ms 22024 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 1 ms 252 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 7 ms 1112 KB Output is correct
13 Correct 156 ms 22008 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 3 ms 724 KB Output is correct
17 Correct 60 ms 12048 KB Output is correct
18 Correct 0 ms 212 KB Output is correct
19 Correct 0 ms 212 KB Output is correct
20 Incorrect 14 ms 3284 KB Answer gives possible 0 while actual possible 1
21 Halted 0 ms 0 KB -