52392023-04-23 16:48:53szilEnergiatakarékos ellenőrzéscpp14Hibás válasz 0/10078ms27964 KiB
#include <bits/stdc++.h>
using namespace std;

const int MAXN = 100001;

vector<int> g[MAXN];

int ans = 0;

int dfs(int x, int p = -1){
	int r = g[x].size() - (x != 1);
	for(int i : g[x]){
		if(i==p)continue;
		r += dfs(i, x);
	}
	ans += min(8, r*2);
	return r;
}

int dfs2(int x, int p = -1){
	int r = (x == 1 ? 2 : (g[x].size()-1)*2);
	for(int i : g[x]){
		if(i==p)continue;
		r += dfs2(i, x);
	}
	ans += min(8*(int)(g[x].size()), r);
	return r;
}

int main() {
	ios::sync_with_stdio(0); cin.tie(0);
	int n; cin >> n;
	for (int i = 0; i < n - 1; i++) {
		int a, b; cin >> a >> b;
		g[a].push_back(b);
		g[b].push_back(a);
	}
	dfs2(1);
	cout<<ans<<"\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva4ms6668 KiB
2Hibás válasz46ms13408 KiB
subtask20/5
3Hibás válasz32ms13980 KiB
4Hibás válasz32ms13936 KiB
5Hibás válasz32ms14072 KiB
6Hibás válasz32ms14172 KiB
7Hibás válasz32ms14384 KiB
subtask30/15
8Hibás válasz4ms7952 KiB
9Hibás válasz4ms8140 KiB
10Hibás válasz4ms8316 KiB
11Hibás válasz4ms8512 KiB
12Elfogadva4ms8528 KiB
13Hibás válasz4ms8488 KiB
14Elfogadva4ms8760 KiB
subtask40/15
15Hibás válasz4ms8824 KiB
16Hibás válasz4ms8880 KiB
17Hibás válasz4ms9004 KiB
18Hibás válasz4ms8912 KiB
19Hibás válasz4ms8908 KiB
20Hibás válasz4ms8964 KiB
21Elfogadva4ms9216 KiB
subtask50/65
22Hibás válasz46ms15612 KiB
23Hibás válasz45ms15560 KiB
24Hibás válasz46ms15568 KiB
25Hibás válasz45ms15568 KiB
26Hibás válasz45ms15836 KiB
27Hibás válasz52ms25476 KiB
28Hibás válasz78ms27964 KiB
29Hibás válasz61ms20796 KiB
30Hibás válasz57ms18172 KiB
31Hibás válasz59ms16064 KiB
32Hibás válasz46ms16088 KiB
33Hibás válasz52ms16040 KiB
34Elfogadva35ms16716 KiB
35Elfogadva43ms16924 KiB
36Hibás válasz35ms17092 KiB
37Hibás válasz37ms17060 KiB
38Hibás válasz39ms17220 KiB
39Hibás válasz37ms17268 KiB
40Hibás válasz46ms17096 KiB