This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define fi first
#define sc second
const int MAXN = 500005;
vector< pair<int,int> > adj[MAXN];
int qtd[MAXN], visQtd;
void dfs(int S, int o)
{
if(qtd[S]==-1)visQtd++;
qtd[S]=o;
for(int i = 0; i < (int)adj[S].size(); i++)
{
int viz = adj[S][i].fi, tipo = adj[S][i].sc;
if(qtd[viz]>=qtd[S])continue;
if(tipo==1)
{
if(o==0)continue;
dfs(viz,0);
}
else dfs(viz,o);
}
return;
}
int main()
{
int N,M; cin>>N>>M;
for(int i = 1; i <= M; i++)
{
char c; int x,y,t=0;
cin>>x>>y>>c;
if(c=='A')t=1;
adj[x].pb({y,t});
adj[y].pb({x,t});
}
int ans = 0;
for(int s = 1; s <= N; s++)
{
for(int i = 1; i <= N; i++)qtd[i]=-1;
visQtd=0;
dfs(s,1);
if(visQtd==N)ans++;
}
cout<<ans<<"\n";
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |