Submission #1114229

# Submission time Handle Problem Language Result Execution time Memory
1114229 2024-11-18T11:57:53 Z Dan4Life Mergers (JOI19_mergers) C++17
34 / 100
3000 ms 50736 KB
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define sz(a) (int)a.size()
#define all(a) begin(a),end(a)
#define int long long
using ar2 = array<int,2>;
const int N = (int)5e5+10;
const int LINF = (int)1e18;
int n, k;
vector<int> adj[N];
int p[N], sz[N];
int a[N], tot[N], cnt[N], deg[N];
vector<int> v[N];
 
int findSet(int i){return i==p[i]?i:p[i]=findSet(p[i]);}
void unionSet(int i, int j){
	int x = findSet(i), y = findSet(j);
	if(x==y) return;
	if(sz[x]<sz[y])swap(x,y);
	p[y] = x, sz[x]+=sz[y];
}
 
void dfs(int s, int p){
	v[s].pb(a[s]);
	for(auto u : adj[s]){
		if(u==p) continue;
		dfs(u,s);
		if(sz(v[s]) < sz(v[u])) v[s].swap(v[u]);
		for(auto w : v[u]) v[s].pb(w);
	}
	int ok = 1;
	for(auto u : v[s]) cnt[u]++;
	for(auto u : v[s]) ok&=(cnt[u]==tot[u]);
	for(auto u : v[s]) cnt[u]--;
	if(p and !ok) unionSet(s,p);
}
 
int32_t main(){
	ios_base::sync_with_stdio(false); cin.tie(0);
	cin >> n >> k;
	for(int i = 1; i <= n; i++) p[i]=i,sz[i]=1;
	for(int i = 1; i < n; i++){
		int a, b; cin >> a >> b;
		adj[a].pb(b); adj[b].pb(a);
	}
	for(int i = 1; i <= n; i++)
		cin >> a[i], tot[a[i]]++;
	dfs(1,0);
	for(int i = 1; i <= n; i++)
		for(int j : adj[i])
			if(findSet(i)!=findSet(j)) 
				deg[findSet(i)]++;
	int cnt = 1;
	for(int i = 1; i <= n; i++) cnt+=(deg[i]==1);
	cout << cnt/2 << "\n";
}
# Verdict Execution time Memory Grader output
1 Correct 6 ms 34896 KB Output is correct
2 Correct 7 ms 34896 KB Output is correct
3 Correct 6 ms 35112 KB Output is correct
4 Correct 7 ms 34896 KB Output is correct
5 Correct 7 ms 35108 KB Output is correct
6 Correct 7 ms 35116 KB Output is correct
7 Correct 7 ms 34896 KB Output is correct
8 Correct 7 ms 34896 KB Output is correct
9 Correct 7 ms 34896 KB Output is correct
10 Correct 9 ms 35112 KB Output is correct
11 Correct 7 ms 34896 KB Output is correct
12 Correct 6 ms 35060 KB Output is correct
13 Correct 7 ms 34896 KB Output is correct
14 Correct 6 ms 35120 KB Output is correct
15 Correct 7 ms 35120 KB Output is correct
16 Correct 7 ms 35064 KB Output is correct
17 Correct 6 ms 34896 KB Output is correct
18 Correct 7 ms 34896 KB Output is correct
19 Correct 7 ms 35064 KB Output is correct
20 Correct 6 ms 34896 KB Output is correct
21 Correct 6 ms 34896 KB Output is correct
22 Correct 6 ms 32848 KB Output is correct
23 Correct 7 ms 35076 KB Output is correct
24 Correct 7 ms 34896 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 34896 KB Output is correct
2 Correct 7 ms 34896 KB Output is correct
3 Correct 6 ms 35112 KB Output is correct
4 Correct 7 ms 34896 KB Output is correct
5 Correct 7 ms 35108 KB Output is correct
6 Correct 7 ms 35116 KB Output is correct
7 Correct 7 ms 34896 KB Output is correct
8 Correct 7 ms 34896 KB Output is correct
9 Correct 7 ms 34896 KB Output is correct
10 Correct 9 ms 35112 KB Output is correct
11 Correct 7 ms 34896 KB Output is correct
12 Correct 6 ms 35060 KB Output is correct
13 Correct 7 ms 34896 KB Output is correct
14 Correct 6 ms 35120 KB Output is correct
15 Correct 7 ms 35120 KB Output is correct
16 Correct 7 ms 35064 KB Output is correct
17 Correct 6 ms 34896 KB Output is correct
18 Correct 7 ms 34896 KB Output is correct
19 Correct 7 ms 35064 KB Output is correct
20 Correct 6 ms 34896 KB Output is correct
21 Correct 6 ms 34896 KB Output is correct
22 Correct 6 ms 32848 KB Output is correct
23 Correct 7 ms 35076 KB Output is correct
24 Correct 7 ms 34896 KB Output is correct
25 Correct 7 ms 34896 KB Output is correct
26 Correct 9 ms 35316 KB Output is correct
27 Correct 9 ms 35408 KB Output is correct
28 Correct 11 ms 35408 KB Output is correct
29 Correct 8 ms 35576 KB Output is correct
30 Correct 8 ms 35408 KB Output is correct
31 Correct 7 ms 34896 KB Output is correct
32 Correct 14 ms 35408 KB Output is correct
33 Correct 7 ms 34896 KB Output is correct
34 Correct 7 ms 35152 KB Output is correct
35 Correct 8 ms 35408 KB Output is correct
36 Correct 8 ms 35408 KB Output is correct
37 Correct 8 ms 35420 KB Output is correct
38 Correct 7 ms 35200 KB Output is correct
39 Correct 7 ms 35304 KB Output is correct
40 Correct 8 ms 35408 KB Output is correct
41 Correct 8 ms 35576 KB Output is correct
42 Correct 8 ms 35380 KB Output is correct
43 Correct 16 ms 35408 KB Output is correct
44 Correct 7 ms 35056 KB Output is correct
45 Correct 10 ms 35408 KB Output is correct
46 Correct 8 ms 35408 KB Output is correct
47 Correct 6 ms 34896 KB Output is correct
48 Correct 8 ms 35580 KB Output is correct
49 Correct 8 ms 35152 KB Output is correct
50 Correct 10 ms 35436 KB Output is correct
51 Correct 8 ms 35408 KB Output is correct
52 Correct 9 ms 35152 KB Output is correct
53 Correct 8 ms 35152 KB Output is correct
54 Correct 8 ms 35408 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 34896 KB Output is correct
2 Correct 7 ms 34896 KB Output is correct
3 Correct 6 ms 35112 KB Output is correct
4 Correct 7 ms 34896 KB Output is correct
5 Correct 7 ms 35108 KB Output is correct
6 Correct 7 ms 35116 KB Output is correct
7 Correct 7 ms 34896 KB Output is correct
8 Correct 7 ms 34896 KB Output is correct
9 Correct 7 ms 34896 KB Output is correct
10 Correct 9 ms 35112 KB Output is correct
11 Correct 7 ms 34896 KB Output is correct
12 Correct 6 ms 35060 KB Output is correct
13 Correct 7 ms 34896 KB Output is correct
14 Correct 6 ms 35120 KB Output is correct
15 Correct 7 ms 35120 KB Output is correct
16 Correct 7 ms 35064 KB Output is correct
17 Correct 6 ms 34896 KB Output is correct
18 Correct 7 ms 34896 KB Output is correct
19 Correct 7 ms 35064 KB Output is correct
20 Correct 6 ms 34896 KB Output is correct
21 Correct 6 ms 34896 KB Output is correct
22 Correct 6 ms 32848 KB Output is correct
23 Correct 7 ms 35076 KB Output is correct
24 Correct 7 ms 34896 KB Output is correct
25 Correct 6 ms 34896 KB Output is correct
26 Correct 52 ms 42948 KB Output is correct
27 Correct 68 ms 46300 KB Output is correct
28 Correct 9 ms 35408 KB Output is correct
29 Correct 6 ms 34896 KB Output is correct
30 Correct 7 ms 32848 KB Output is correct
31 Correct 76 ms 48256 KB Output is correct
32 Correct 7 ms 35152 KB Output is correct
33 Execution timed out 3101 ms 50736 KB Time limit exceeded
34 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 43 ms 42940 KB Output is correct
2 Correct 48 ms 44944 KB Output is correct
3 Correct 8 ms 35408 KB Output is correct
4 Correct 8 ms 35204 KB Output is correct
5 Correct 7 ms 34896 KB Output is correct
6 Correct 7 ms 35116 KB Output is correct
7 Correct 8 ms 35152 KB Output is correct
8 Correct 94 ms 48072 KB Output is correct
9 Correct 9 ms 35576 KB Output is correct
10 Correct 92 ms 48068 KB Output is correct
11 Correct 7 ms 34896 KB Output is correct
12 Correct 211 ms 47316 KB Output is correct
13 Correct 86 ms 48316 KB Output is correct
14 Correct 70 ms 48648 KB Output is correct
15 Correct 51 ms 43124 KB Output is correct
16 Correct 8 ms 35152 KB Output is correct
17 Correct 6 ms 34896 KB Output is correct
18 Correct 53 ms 45164 KB Output is correct
19 Execution timed out 3072 ms 44848 KB Time limit exceeded
20 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 6 ms 34896 KB Output is correct
2 Correct 7 ms 34896 KB Output is correct
3 Correct 6 ms 35112 KB Output is correct
4 Correct 7 ms 34896 KB Output is correct
5 Correct 7 ms 35108 KB Output is correct
6 Correct 7 ms 35116 KB Output is correct
7 Correct 7 ms 34896 KB Output is correct
8 Correct 7 ms 34896 KB Output is correct
9 Correct 7 ms 34896 KB Output is correct
10 Correct 9 ms 35112 KB Output is correct
11 Correct 7 ms 34896 KB Output is correct
12 Correct 6 ms 35060 KB Output is correct
13 Correct 7 ms 34896 KB Output is correct
14 Correct 6 ms 35120 KB Output is correct
15 Correct 7 ms 35120 KB Output is correct
16 Correct 7 ms 35064 KB Output is correct
17 Correct 6 ms 34896 KB Output is correct
18 Correct 7 ms 34896 KB Output is correct
19 Correct 7 ms 35064 KB Output is correct
20 Correct 6 ms 34896 KB Output is correct
21 Correct 6 ms 34896 KB Output is correct
22 Correct 6 ms 32848 KB Output is correct
23 Correct 7 ms 35076 KB Output is correct
24 Correct 7 ms 34896 KB Output is correct
25 Correct 7 ms 34896 KB Output is correct
26 Correct 9 ms 35316 KB Output is correct
27 Correct 9 ms 35408 KB Output is correct
28 Correct 11 ms 35408 KB Output is correct
29 Correct 8 ms 35576 KB Output is correct
30 Correct 8 ms 35408 KB Output is correct
31 Correct 7 ms 34896 KB Output is correct
32 Correct 14 ms 35408 KB Output is correct
33 Correct 7 ms 34896 KB Output is correct
34 Correct 7 ms 35152 KB Output is correct
35 Correct 8 ms 35408 KB Output is correct
36 Correct 8 ms 35408 KB Output is correct
37 Correct 8 ms 35420 KB Output is correct
38 Correct 7 ms 35200 KB Output is correct
39 Correct 7 ms 35304 KB Output is correct
40 Correct 8 ms 35408 KB Output is correct
41 Correct 8 ms 35576 KB Output is correct
42 Correct 8 ms 35380 KB Output is correct
43 Correct 16 ms 35408 KB Output is correct
44 Correct 7 ms 35056 KB Output is correct
45 Correct 10 ms 35408 KB Output is correct
46 Correct 8 ms 35408 KB Output is correct
47 Correct 6 ms 34896 KB Output is correct
48 Correct 8 ms 35580 KB Output is correct
49 Correct 8 ms 35152 KB Output is correct
50 Correct 10 ms 35436 KB Output is correct
51 Correct 8 ms 35408 KB Output is correct
52 Correct 9 ms 35152 KB Output is correct
53 Correct 8 ms 35152 KB Output is correct
54 Correct 8 ms 35408 KB Output is correct
55 Correct 6 ms 34896 KB Output is correct
56 Correct 52 ms 42948 KB Output is correct
57 Correct 68 ms 46300 KB Output is correct
58 Correct 9 ms 35408 KB Output is correct
59 Correct 6 ms 34896 KB Output is correct
60 Correct 7 ms 32848 KB Output is correct
61 Correct 76 ms 48256 KB Output is correct
62 Correct 7 ms 35152 KB Output is correct
63 Execution timed out 3101 ms 50736 KB Time limit exceeded
64 Halted 0 ms 0 KB -