#include<bits/stdc++.h>
#define int long long
#define fi first
#define se second
#define pb push_back
#define PII pair<int,int >
#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
using namespace std;
const int N = 1e6+5;
int n,m;
int in[N];
vector<int> v[N];
void topsort()
{
queue<int> q;
for(int i=1;i<=n;i++) if(in[i]==0) q.push(i);
while(q.size())
{
auto now = q.front();
q.pop();
for(auto spot : v[now])
{
if(--in[spot]==0) q.push(spot);
}
}
}
signed main()
{
IOS;
cin>>n;
for(int i=1;i<=n;i++)
{
int x;
while(cin>>x&&x!=0)
{
v[i].pb(x);
in[x]++;
}
}
topsort();
}
#include<bits/stdc++.h>
#define int long long
#define fi first
#define se second
#define pb push_back
#define PII pair<int,int >
#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
using namespace std;
const int N = 1e6+5;
int n,m;
vector<int> v[N];
set<int> s;
int in[N];
int cnt=0;
void topsort()
{
queue<int> q;
for(int i=1;i<=510;i++)
if(in[i]==0&&s.count(i))
{
q.push(i);
}
while(q.size())
{
auto now = q.front();
cnt++;
q.pop();
for(auto spot:v[now])
{
if(--in[spot]==0&&s.count(spot))
{
q.push(spot);
}
}
}
}
signed main()
{
IOS;
cin>>n;
for(int i=1;i<=n;i++)
{
int x,m;
cin>>x>>m;
s.insert(x);
while(m--)
{
int y;
cin>>y;
v[x].pb(y);
in[y]++;
}
}
topsort();
if(cnt!=n) cout<<n-cnt;
else cout<<"YES";
}
#include<bits/stdc++.h>
#define int long long
#define fi first
#define se second
#define pb push_back
#define PII pair<int,int >
#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
using namespace std;
const int N = 1e6+5;
int n,m;
int in[N];
int out[N];
int mod=80112002;
vector<int> v[N];
int dp[N];
void topsort()
{
queue<int> q;
for(int i=1;i<=n;i++)
{
if(in[i]==0)
{
q.push(i);
dp[i] = 1;
}
}
while(q.size())
{
int now = q.front();
q.pop();
for(auto spot:v[now])
{
dp[spot] = (dp[spot]+dp[now])%mod;
if(--in[spot]==0) q.push(spot);
}
}
}
signed main()
{
IOS;
cin>>n>>m;
for(int i=1;i<=m;i++)
{
int a,b;
cin>>a>>b;
v[a].pb(b);
in[b]++;
out[a]++;
}
topsort();
int sum=0;
for(int i=1;i<=n;i++)
{
if(out[i]==0) sum = (sum+dp[i])%mod;
}
cout<<sum;
}
#include<bits/stdc++.h>
#define int long long
#define fi first
#define se second
#define pb push_back
#define PII pair<int,int >
#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
using namespace std;
const int N = 1e6+5;
int n,m,k;
int in[N];
int va[N];
vector<PII> v[N];
int dp[N];
void topsort()
{
queue<int> q;
for(int i=1;i<=n;i++)
{
if(in[i]==0)
{
q.push(i);
}
}
for(int i=1;i<=n;i++) dp[i] = va[i];
while(q.size())
{
int now = q.front();
q.pop();
for(auto t:v[now])
{
int spot = t.fi,w = t.se;
dp[spot] = max(dp[spot],dp[now]+w);
if(--in[spot]==0) q.push(spot);
}
}
}
signed main()
{
IOS;
cin>>n>>m>>k;
for(int i=1;i<=n;i++) cin>>va[i];
while(k--)
{
int a,b,c;
cin>>a>>b>>c;
v[a].pb({b,c});
in[b]++;
}
topsort();
for(int i=1;i<=n;i++) cout<<dp[i]<<"\n";
}