Cod sursa(job #762217)
#include<fstream>
using namespace std;
typedef struct lnod{
int vf;
struct lnod *next;
}*Nod;
Nod a[4100];
int N,M;
inline bool search(int t,int v)
{
for(Nod z=a[t];z;z=z->next)
if(z->vf==v)return 1;
return 0;
}
int main(void)
{
ifstream fin("triplete.in");
ofstream fout("triplete.out");
int i,x,y,NR=0; Nod p,q;
fin>>N>>M;
for(i=1;i<=M;++i)
{
fin>>x>>y;
Nod p = new lnod;
p->vf = y;
p->next = a[x];
a[x] = p;
p = new lnod;
p->vf = x;
p->next = a[y];
a[y] = p;
}
for(i=1;i<=N;++i)
if(a[i] && a[i]->next)
for(p=a[i];p;p=p->next)
if(p->vf>i)
for(q=p->next;q;q=q->next)
if(q->vf>i)
if(search(p->vf,q->vf))
++NR;
fout<<NR<<'\n';
return 0;
}