Pagini recente » Cod sursa (job #1838246) | Cod sursa (job #1275154) | Cod sursa (job #234325) | Cod sursa (job #1083313) | Cod sursa (job #93635)
Cod sursa(job #93635)
#include <cstdio>
#include <vector>
using namespace std;
const int N = 10000;
int n, root;
int a[N], up[N];
vector<int> down[N];
int df ( int nod ) {
a[up[i]] += a[i];
int move = a[i];
a[i] = 0;
for (int i = 0; i < down[nod].size(); ++i) move += df(down[nod][i]);
return move;
}
int main() {
#ifndef ONLINE_JUDGE
freopen("1443.in","rt",stdin);
freopen("1443.out","wt",stdout);
#endif
for (scanf("%d",&n); n > 0; scanf("%d",&n)) {
memset(up,0,sizeof(int)*N);
move = 0;
for (int i = 0; i < n; ++i) {
int na, v;
scanf("%d",&v); scanf("%d %d",&a[v],&na); --a[v];
for (int j = 0; j < na; ++j) {
int nod;
scanf("%d",&nod);
up[nod] = v;
down[v].push_back(nod);
}
}
for (int i = 0; i<n; ++i) {
if (up[i] == 0) {
root = i;
break;
}
}
printf("%d\n",df(root));
}
return 0;
}