제출 #765611

#제출 시각아이디문제언어결과실행 시간메모리
765611LeaRouse관광지 (IZhO14_shymbulak)C++14
50 / 100
396 ms13644 KiB
#include<bits/stdc++.h>
#define fastio ios_base::sync_with_stdio(0); cin.tie(0);
#define ll long long
#define ff first
#define ss second
using namespace std;
const int MAX = 5e4+5;
ll D[MAX],C[MAX],ans[MAX];
pair<int,int>dp[(1<<21)+5];
vector<int>v[MAX];
ll maxi=0;
void bfs(int x){
    memset(D,-1,sizeof(D));
    memset(C,0,sizeof(C));
    queue<int>q;
    D[x]=0; C[x] = 1; q.push(x); 
    while(!q.empty()){
        int u=q.front(); 
        q.pop();
        for(auto it:v[u]){
            if(D[it]==-1){
                D[it]=D[u]+1;   C[it]=C[u];
                ans[D[it]]+=C[u];   q.push(it);
            }
            else if(D[it]==D[u]+1){
                C[it]+=C[u];    ans[D[it]]+=C[u];
            }
            maxi=max(maxi,D[it]);
        }
    }
}

void go(){
    int n;  cin>>n;
    for(int i=0;i<n;i++){
        int a,b;    cin>>a>>b;
        v[a].push_back(b);
        v[b].push_back(a);
    }
    for(int i=0;i<n;i++){
        bfs(i+1);
    }
    cout<<ans[maxi]/2<<endl;
}

int main(){
    fastio;
    go();
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...