Submission #64783339


Source Code Expand

Copy
#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'};
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
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
AC × 2
AC × 49
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


2025-06-06 (Fri)
18:21:49 +09:00