Pagini recente » Cod sursa (job #1086821) | Cod sursa (job #1364679) | Cod sursa (job #708399) | Cod sursa (job #1629456) | Cod sursa (job #1933919)
#include <cstdio>
#include <list>
using namespace std;
list<int> adj[4097];
int vertices, edges, answer;
int u, v, visited[4097];
void BFS(int node){
visited[node] = node + 1;
list<int>::iterator i, j;
for(i = adj[node].begin(); i != adj[node].end(); i++){
visited[*i] = node + 1;
}
for(i = adj[node].begin(); i != adj[node].end(); i++){
for(j = adj[*i].begin(); j != adj[*i].end(); j++){
if(visited[*j] == node + 1 && *j != node){
++answer;
}
}
}
}
int main(){
freopen("triplete.in", "r", stdin);
freopen("triplete.out", "w", stdout);
scanf("%d %d", &vertices, &edges);
for(int i = 1; i <= edges; i++){
scanf("%d %d", &u, &v);
adj[u].push_back(v);
adj[v].push_back(u);
}
for(int node = 1; node <= vertices; node++){
BFS(node);
}
printf("%d", answer / 6);
return 0;
}