Pagini recente » Cod sursa (job #1405906) | Cod sursa (job #1266357) | Cod sursa (job #2450447) | Cod sursa (job #2278599) | Cod sursa (job #737575)
Cod sursa(job #737575)
using namespace std;
#include<cstdio>
#include<vector>
#define NMAX 4100
#define go(x,y,v) (v.push_back(make_pair((x),(y))))
#define maxim(a,b) ((a>b)?(a):(b))
vector< pair <unsigned, unsigned > > M;
vector< unsigned > G[NMAX];
int n,S=0,m;
void citire()
{
freopen("triplete.in","r",stdin);
int x,y,i;
scanf("%d %d",&n,&m);
for(i=0;i<m;i++)
{
scanf("%d %d",&x,&y);
G[unsigned(x)].push_back(unsigned(y));
G[unsigned(y)].push_back(unsigned(x));
go(unsigned(x),unsigned(y),M);
}
}
bool search(unsigned val, unsigned i)
{
unsigned j;
for(j=0;j<G[i].size();j++)
if(G[i][j]==val)
return 1;
return 0;
}
void BVO()
{
unsigned i,j;
for(i=0;i<(unsigned)m;i++) // parcurgem muchiile
for(j=0;j<G[M[i].first].size();j++) // cautam in lista de adiacenta a nodului 1 al muchiei
if(G[M[i].first][j]>maxim(M[i].first,M[i].second))
if(search(G[M[i].first][j],M[i].second))
S++;
}
void afisare()
{
freopen("triplete.out","w",stdout);
printf("%d\n",S);
}
int main()
{
citire();
BVO();
afisare();
return 0;
}