結果
問題 | No.1103 Directed Length Sum |
ユーザー |
|
提出日時 | 2024-09-13 23:28:36 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 725 bytes |
コンパイル時間 | 2,227 ms |
コンパイル使用メモリ | 199,048 KB |
最終ジャッジ日時 | 2025-02-24 08:15:50 |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 21 WA * 1 |
ソースコード
#include <bits/stdc++.h> using namespace std; using ll = long long; vector<int> C,D; void dfs(int n,vector<vector<int>> &G){ C[n]=1; for(int v:G[n]){ D[v]=D[n]+1; dfs(v,G); C[n]+=C[v]; } } int main() { cin.tie(nullptr); ios::sync_with_stdio(false); int N; cin>>N; vector<vector<int>> G(N); vector<bool> R(N,1); for(int i=0;i<N-1;i++){ int a,b; cin>>a>>b; a--;b--; R[b]=0; G[a].push_back(b); } int r=0; for(int i=0;i<N;i++)if(R[i])r=i; C.assign(N,0); D.assign(N,0); dfs(r,G); ll an=0; ll mod=1e9+7; for(int i=0;i<N;i++){ an+=(D[i]*C[i])%mod; } cout<<an%mod<<endl; }