Pagini recente » Cod sursa (job #741451) | Cod sursa (job #729904) | Cod sursa (job #1613743) | Cod sursa (job #1763716) | Cod sursa (job #2170474)
/// DE CONTINUAT
#include <fstream>
#include <string.h>
#include<vector>
using namespace std;
ifstream f("ninjago.in");
ofstream g("ninjago.out");
int n,m,i,x,y,q,pos,j,ok ;
char c[5];
int conexe;
int viz[31205];
vector <int> v[31205];
vector <pair <int,int > > vv[31205];
void dfs(int nod)
{
int nodul;
viz[nod]=1;
pos++;
vector <int> :: iterator it;
for(it=v[nod].begin();it!=v[nod].end();++it)
{
nodul=*it;
if(viz[nodul]==0)
dfs(nodul);
}
}
void solve1()
{
f>>n>>m;
for(i=1;i<=m;i++)
{ok=1;
f>>x>>y;
f.get();
f.getline(c,5);
for(j=0;j<4;j++)
if(c[j]=='E')ok=0;
if(ok)
{
v[x].push_back(y);
v[y].push_back(x);
}
}
dfs(1);vector <int> v[31205];
g<<pos<<'\n';
}
void solve2()
{
f>>n>>m;
for(i=1;i<=m;i++)
{ok=0;
f>>x>>y;
f.get();
f.getline(c,5);
for(j=0;j<4;j++)
if(c[j]=='E')ok++;
if(!ok)
v[x].push_back(y);
v[y].push_back(x);
vv[x].push_back(make_pair(y,ok));
vv[y].push_back(make_pair(x,ok));
}
for(i=1;i<=n;i++)
if(!viz[i])
{
dfs(i);
conexe++;
}
conexe=conexe-1;
g<<conexe<<'\n';
}
int main()
{
f>>q;
if(q==1)solve1();
if(q==2)solve2();
//if(q==3)solve3();
f.close();g.close();return 0;
return 0;
}