Submission #64783339
Source Code Expand
Copy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#ifndef _Alignof
#define _Alignof __alignof__
#endif
#include <bits/stdc++.h>
#include <numeric>
#define LOOP(n) for (int _i = 0; _i < (n); _i++)
#define REP(i, n) for (int i = 0; i < (n); ++i)
#define RREP(i, n) for (int i = (n); i >= 0; --i)
#define FOR(i, r, n) for (int i = (r); i < (n); ++i)
#define ALL(obj) begin(obj), end(obj)
#define yes "Yes"
#define no "No"
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef pair<ll,int> pli;
typedef pair<int,ll> pil;
typedef vector<vector<int>> vvi;
typedef vector<vector<ll>> vvl;
const vector<char> alpha = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int dx[4] = {0, 1, 0, -1};
int dy[4] = {1, 0, -1, 0};
const ll INF = 1e18;
vector<int> bfs(int s,int n,vector<vector<int>>&g){
vector<int> dist(n,-1);
dist[s]=0;
queue<int>q;
q.push(s);
while(!q.empty()){
int u=q.front();q.pop();
for(auto &w:g[u]){
if(dist[w]<0){
dist[w]=dist[u]+1;
q.push(w);
}
}
}
return dist;
}
tuple<vector<int>,vector<int>,int> find_diameter(int n,vector<vector<int>>&g){
auto d0=bfs(0,n,g);
int x=0;
for(int i=0;i<n;i++){
if(d0[i]>d0[x])x=i;
}
auto dx=bfs(x,n,g);
int y=0;
for(int i=0;i<n;i++){
if(dx[i]>dx[y])y=i;
}
auto dy=bfs(y,n,g);
return {dx,dy,dx[y]};
}
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N1;cin>>N1;
vector<vector<int>> g1(N1);
for(int i=0;i<N1-1;i++){
int a,b;cin>>a>>b;--a;--b;
g1[a].push_back(b);
g1[b].push_back(a);
}
auto [dx1,dy1,D1]=find_diameter(N1,g1);
vector<int> e1(N1);
for(int i=0;i<N1;i++){
e1[i]=max(dx1[i],dy1[i]);
}
int N2;cin>>N2;
vector<vector<int>> g2(N2);
for(int i=0;i<N2-1;i++){
int a,b;cin>>a>>b;--a;--b;
g2[a].push_back(b);
g2[b].push_back(a);
}
auto [dx2,dy2,D2]=find_diameter(N2,g2);
vector<int> e2(N2);
for(int i=0;i<N2;i++){
e2[i]=max(dx2[i],dy2[i]);
}
sort(e1.begin(),e1.end());
sort(e2.begin(),e2.end());
long long M=max((long long)D1,(long long)D2),ans=M*( (long long)N1*N2 );
vector<long long> p2(N2+1,0);
for(int i=0;i<N2;i++){
p2[i+1]=p2[i]+e2[i];
}
for(auto &A:e1){
long long t=M-A-1;
auto idx=lower_bound(e2.begin(),e2.end(),t+1)-e2.begin();
if(idx<(long long)N2){
long long cnt=N2-idx;
long long s=p2[N2]-p2[idx];
ans+=( (long long)(A+1)-M )*cnt + s;
}
}
cout<<ans<<"\n";
}
Submission Info
| Submission Time |
|
| Task |
F - Add One Edge 3 |
| User |
una_o0 |
| Language |
C++ 17 (gcc 12.2) |
| Score |
500 |
| Code Size |
2806 Byte |
| Status |
AC |
| Exec Time |
210 ms |
| Memory |
33096 KiB |
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
500 / 500 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
00_sample_00.txt, 00_sample_01.txt |
| All |
00_sample_00.txt, 00_sample_01.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 01_random_22.txt, 01_random_23.txt, 01_random_24.txt, 01_random_25.txt, 01_random_26.txt, 01_random_27.txt, 01_random_28.txt, 01_random_29.txt, 01_random_30.txt, 01_random_31.txt, 01_random_32.txt, 01_random_33.txt, 01_random_34.txt, 01_random_35.txt, 01_random_36.txt, 01_random_37.txt, 01_random_38.txt, 01_random_39.txt, 01_random_40.txt, 01_random_41.txt, 01_random_42.txt, 01_random_43.txt, 01_random_44.txt, 01_random_45.txt, 01_random_46.txt |
| Case Name |
Status |
Exec Time |
Memory |
| 00_sample_00.txt |
AC |
1 ms |
3512 KiB |
| 00_sample_01.txt |
AC |
1 ms |
3452 KiB |
| 01_random_00.txt |
AC |
164 ms |
31876 KiB |
| 01_random_01.txt |
AC |
29 ms |
9612 KiB |
| 01_random_02.txt |
AC |
16 ms |
6764 KiB |
| 01_random_03.txt |
AC |
3 ms |
3836 KiB |
| 01_random_04.txt |
AC |
144 ms |
29372 KiB |
| 01_random_05.txt |
AC |
88 ms |
19456 KiB |
| 01_random_06.txt |
AC |
63 ms |
15992 KiB |
| 01_random_07.txt |
AC |
51 ms |
13688 KiB |
| 01_random_08.txt |
AC |
65 ms |
17096 KiB |
| 01_random_09.txt |
AC |
53 ms |
14480 KiB |
| 01_random_10.txt |
AC |
103 ms |
33012 KiB |
| 01_random_11.txt |
AC |
43 ms |
17068 KiB |
| 01_random_12.txt |
AC |
81 ms |
26680 KiB |
| 01_random_13.txt |
AC |
17 ms |
8952 KiB |
| 01_random_14.txt |
AC |
79 ms |
25736 KiB |
| 01_random_15.txt |
AC |
23 ms |
11396 KiB |
| 01_random_16.txt |
AC |
65 ms |
21448 KiB |
| 01_random_17.txt |
AC |
38 ms |
14880 KiB |
| 01_random_18.txt |
AC |
112 ms |
33096 KiB |
| 01_random_19.txt |
AC |
82 ms |
26848 KiB |
| 01_random_20.txt |
AC |
163 ms |
31368 KiB |
| 01_random_21.txt |
AC |
94 ms |
21476 KiB |
| 01_random_22.txt |
AC |
33 ms |
10524 KiB |
| 01_random_23.txt |
AC |
34 ms |
10416 KiB |
| 01_random_24.txt |
AC |
70 ms |
17656 KiB |
| 01_random_25.txt |
AC |
80 ms |
19220 KiB |
| 01_random_26.txt |
AC |
91 ms |
20780 KiB |
| 01_random_27.txt |
AC |
77 ms |
17272 KiB |
| 01_random_28.txt |
AC |
69 ms |
17180 KiB |
| 01_random_29.txt |
AC |
34 ms |
10612 KiB |
| 01_random_30.txt |
AC |
170 ms |
31208 KiB |
| 01_random_31.txt |
AC |
176 ms |
30104 KiB |
| 01_random_32.txt |
AC |
108 ms |
21612 KiB |
| 01_random_33.txt |
AC |
131 ms |
24904 KiB |
| 01_random_34.txt |
AC |
73 ms |
16016 KiB |
| 01_random_35.txt |
AC |
28 ms |
8624 KiB |
| 01_random_36.txt |
AC |
63 ms |
14400 KiB |
| 01_random_37.txt |
AC |
43 ms |
11440 KiB |
| 01_random_38.txt |
AC |
48 ms |
12048 KiB |
| 01_random_39.txt |
AC |
48 ms |
12476 KiB |
| 01_random_40.txt |
AC |
171 ms |
31480 KiB |
| 01_random_41.txt |
AC |
187 ms |
31232 KiB |
| 01_random_42.txt |
AC |
210 ms |
31380 KiB |
| 01_random_43.txt |
AC |
205 ms |
31204 KiB |
| 01_random_44.txt |
AC |
187 ms |
31212 KiB |
| 01_random_45.txt |
AC |
1 ms |
3424 KiB |
| 01_random_46.txt |
AC |
83 ms |
17808 KiB |