# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
71951 | KLPP | Duathlon (APIO18_duathlon) | C++14 | 272 ms | 53904 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<iostream>
#include<stdio.h>
#include<vector>
#include<queue>
#include<algorithm>
using namespace std;
typedef long long int lld;
lld DP[1000000];
bool visited[1000000];
vector<int>nei[1000000];
lld ans;
bool visited2[1000000];
void DFS(int node,lld dist){//cout<<node+1<<" "<<dist<<endl;
visited[node]=true;
lld sum=0;
//lld square=0;
//lld totaldist=0;
for(int i=0;i<nei[node].size();i++){
int v=nei[node][i];
if(!visited[v]){
DFS(v,dist+1);
sum+=DP[v];
//square+=DP[v]*DP[v];
}
}
DP[node]=sum+1;
//ans+=sum*sum-square;
//cout<<sum*sum-square<<" "<<node+1<<endl;
//ans+=dist*(dist-1);
}
void DFS2(int node,lld componentsize){
visited2[node]=true;
lld sq=componentsize-DP[node];
sq*=sq;
for(int i=0;i<nei[node].size();i++){
int v=nei[node][i];
if(!visited2[v]){
DFS2(v,componentsize);
sq+=DP[v]*DP[v];
}
}
ans+=(componentsize-1)*(componentsize-1)-sq;
//cout<<(componentsize-1)*(componentsize-1)-sq<<" "<<node+1<<endl;
}
int main(){
int n,m;
cin>>n>>m;
for(int i=0;i<m;i++){
int x,y;
cin>>x>>y;
x--;y--;
nei[x].push_back(y);
nei[y].push_back(x);
}
ans=0;
for(int i=0;i<n;i++){
DP[i]=-1;
visited[i]=false;
visited2[i]=false;
}
for(int i=0;i<n;i++){
if(!visited[i]){
DFS(i,0);
DFS2(i,DP[i]);
}
}//for(int i=0;i<n;i++)cout<<DP[i]<<" "<<i+1<<endl;
cout<<ans<<endl;
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |