104972024-04-03 15:29:14111A Day in Olbiacpp17Futási hiba 0/1003ms4412 KiB
#include<bits/stdc++.h>
using namespace std;

#define int long long

int get(map<int,int>&m,int x){
	auto t=m.find(x);
	return t==m.end()?0:t->second;
}

signed main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int N;
	cin>>N;
	if(N>1000)exit(1);
	vector<vector<int>>g(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);
	}
	int ans=0;
	for(int m=1;m<=1;m++){
		auto dfs=[&](auto self,int i,int p,int d)->map<int,int>{
			map<int,int>s;
			for(int j:g[i]){
				if(j==p){
					continue;
				}
				auto z=self(self,j,i,d+1);
				ans+=get(z,-(i*m-d)-d*2);
				if(s.size()<z.size()){
					swap(s,z);
				}
				for(auto[x,y]:z){
					ans+=get(s,-x-d*2)*y;
				}
				for(auto[x,y]:z){
					s[x]+=y;
				}
			}
			s[i*m-d]++;
			return s;
		};
		dfs(dfs,8,-1,0);
	}
	cout<<ans<<'\n';
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Futási hiba3ms1920 KiB
2Futási hiba3ms2116 KiB
subtask20/16
3Elfogadva3ms2240 KiB
4Elfogadva2ms2340 KiB
5Elfogadva2ms2336 KiB
6Hibás válasz3ms2692 KiB
subtask30/16
7Elfogadva3ms2860 KiB
8Elfogadva3ms2784 KiB
9Elfogadva3ms3472 KiB
10Elfogadva3ms3332 KiB
11Elfogadva3ms3376 KiB
12Hibás válasz3ms3712 KiB
13Hibás válasz3ms3460 KiB
14Hibás válasz3ms3384 KiB
15Hibás válasz3ms3424 KiB
subtask40/16
16Futási hiba3ms3128 KiB
17Futási hiba2ms3016 KiB
subtask50/52
18Futási hiba2ms3012 KiB
19Futási hiba3ms3244 KiB
20Futási hiba3ms3452 KiB
21Futási hiba3ms3572 KiB
22Futási hiba3ms3652 KiB
23Futási hiba3ms3748 KiB
24Futási hiba3ms3972 KiB
25Futási hiba3ms4060 KiB
26Futási hiba3ms4156 KiB
27Futási hiba3ms4304 KiB
28Futási hiba2ms4304 KiB
29Futási hiba3ms4320 KiB
30Futási hiba3ms4312 KiB
31Futási hiba3ms4412 KiB