이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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... |