Pagini recente » Cod sursa (job #1639143) | Cod sursa (job #2047456) | Cod sursa (job #1532958) | Cod sursa (job #1410353) | Cod sursa (job #908831)
Cod sursa(job #908831)
#include<cstdio>
#include<vector>
#define NMAX 4100
using namespace std;
FILE *fin,*fout;
vector<short> G[NMAX];
short n,D[NMAX];
bool use[NMAX],marked[NMAX];
int s;
int abs(int a)
{
if(a<0)
return -a;
return a;
}
void read()
{
fin=fopen("triplete.in","r");
int m;
short x,y;
fscanf(fin,"%hi %d",&n,&m);
while(m--)
{
fscanf(fin,"%hi %hi",&x,&y);
G[x].push_back(y);
G[y].push_back(x);
}
fclose(fin);
}
void DFS(int nod)
{
int vec;
if(D[nod]>3)
{
D[nod]=0;
return;
}
use[nod]=1;
marked[nod]=1;
for(size_t i=0;i<G[nod].size();i++)
{
vec=G[nod][i];
if(!use[vec] && D[nod]<3)
{
D[vec]=D[nod]+1;
DFS(vec);
}
else
if(abs(D[vec]-D[nod])==2)
s++;
}
use[nod]=0;
D[nod]=0;
}
int main()
{
read();
for(int i=1;i<=n;i++)
{
D[i]=1;
DFS(i);
}
fout=fopen("triplete.out","w");
fprintf(fout,"%d",s/6);
fclose(fout);
return 0;
}