結果
| 問題 |
No.2638 Initial fare
|
| コンテスト | |
| ユーザー |
yuyu_5510
|
| 提出日時 | 2024-02-19 22:39:56 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 164 ms / 2,000 ms |
| コード長 | 850 bytes |
| コンパイル時間 | 1,612 ms |
| コンパイル使用メモリ | 173,644 KB |
| 実行使用メモリ | 16,672 KB |
| 最終ジャッジ日時 | 2024-09-29 02:31:45 |
| 合計ジャッジ時間 | 5,376 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 25 |
ソースコード
#include<bits/stdc++.h>
using namespace std;
int main(){
long long n;
cin >> n;
vector<vector<int>> g(n);
for(int i = 0;i < n-1;i++){
int u, v;
cin >> u >> v;
u--;v--;
g[u].push_back(v);
g[v].push_back(u);
}
vector<long long> around(n);
for(int i = 0;i < n;i++){
for(auto to : g[i]){
around[i] += g[to].size();
}
}
long long ans = 0;
for(int i = 0;i < n;i++){
for(auto to : g[i]){
ans += (long long) (g[i].size() - 1) * (g[to].size() - 1);
}
}
ans /= 2;
for(int i = 0;i < n;i++){
ans += ((long long) g[i].size()) * (g[i].size() - 1) / 2;
}
long long add = 0;
for(int i = 0;i < n;i++){
add += (long long)g[i].size();
}
ans += add / 2;
cout << ans << endl;
}
yuyu_5510