Pagini recente » Cod sursa (job #1233091) | Cod sursa (job #2030871) | Cod sursa (job #3194718) | Cod sursa (job #1597544) | Cod sursa (job #970261)
Cod sursa(job #970261)
#include <fstream>
#include <vector>
#include <bitset>
#include <queue>
#include <algorithm>
#include <stack>
#include <string.h>
using namespace std;
ifstream cin("plopi.in");
ofstream cout("plopi.out");
const int MAXN = 100005;
vector < pair<long long, long long> > Graph[MAXN];
long long N, rez;
long long d[MAXN], fr[2];
inline void dfs(int s)
{
for(vector< pair<long long, long long > > :: iterator it = Graph[s].begin(); it != Graph[s].end(); ++ it)
if(d[it->first] == -1)
{
d[it->first] = d[s] + it->second;
++fr[d[it->first]&1];
dfs(it->first);
}
}
int main()
{
memset(d, -1, sizeof(d));
cin >> N ;
for(int i = 1 ; i != N ; ++ i)
{
int x, y, z;
cin >> x >> y >> z;
Graph[x].push_back(make_pair(y, z));
Graph[y].push_back(make_pair(x, z));
}
d[1] = 0;
++fr[d[1]];
dfs(1);
cout << fr[0]*fr[1] << "\n";
return 0;
}