QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#880812#9983. Color-Balanced Treemortis_lifeML 0ms0kbC++14873b2025-02-03 21:02:032025-02-03 21:02:04

Judging History

This is the latest submission verdict.

  • [2025-02-03 21:02:04]
  • Judged
  • Verdict: ML
  • Time: 0ms
  • Memory: 0kb
  • [2025-02-03 21:02:03]
  • Submitted

answer

#include<bits/stdc++.h>

using namespace std;

const int N = 1e5 + 10;
int n , a; bool vis[N];
struct node {
	int to , nex;
}e[N]; int cnt , h[N] , col[N];
void add(int u , int v) {
	e[++ cnt] = (node){v , h[u]}; h[u] = cnt;
}
void dfs(int x , int fa) {
	col[x] = -col[fa];
	if(col[x] == 1) a ++;
	for(int i = h[x];i;i = e[i].nex) {
		if(e[i].to == fa) continue;
		dfs(e[i].to , x);
		vis[x] = 0;
	}
}

int main() {
	cin >> n;
	for(int i = 1 , u , v;i < 2 * n;i ++) {
		scanf("%d%d",&u,&v);
		add(u , v); add(v , u);
	}
	for(int i = 1;i <= 2 * n;i ++) vis[i] = 1;
	col[0] = 1; dfs(1 , 0);
//	cout << n << endl;
	for(int i = 1;i <= 2 * n;i ++) {
		if(vis[i]) {
			if(a > n && (col[i] == 1)) col[i] = -1 , a --;
			if(a < n && (col[i] == -1)) col[i] = 1 , a ++;
		}
		printf("%d ",col[i]);
	}
	return 0;
}
/*
3 1 2 2 3 2 4 4 5 4 6
*/

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Memory Limit Exceeded

input:

4
3
1 2
2 3
2 4
4 5
4 6
3
1 2
1 3
1 4
1 5
1 6
4
1 2
2 3
3 4
4 5
5 6
6 7
7 8
5
1 2
1 4
4 3
4 5
5 6
5 8
8 7
8 9
9 10

output:


result: