Pagini recente » Cod sursa (job #1714638) | Cod sursa (job #1177258) | Cod sursa (job #332174) | Cod sursa (job #3196821) | Cod sursa (job #908833)
Cod sursa(job #908833)
#include<cstdio>
#include<vector>
#include<cstring>
#define NMAX 4100
using namespace std;
FILE *fin,*fout;
vector<short> G[NMAX];
short n,D[NMAX];
bool use[NMAX];
int s;
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;
use[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(D[nod]-D[vec]==2)
s++;
}
use[nod]=0;
}
int main()
{
read();
for(int i=1;i<=n;i++)
{
memset(D,0,sizeof(D));
D[i]=1;
DFS(i);
}
fout=fopen("triplete.out","w");
fprintf(fout,"%d",s/6);
fclose(fout);
return 0;
}