Cod sursa(job #1933923)

Utilizator 1475369147896537415369Andrei Udriste 1475369147896537415369 Data 20 martie 2017 23:54:23
Problema Triplete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <cstdio>
#include <vector>
using namespace std;

vector<int> adj[4097];
int vertices, edges, answer;
int u, v, visited[4097];

void BFS(int node){

    visited[node] = node + 1;

    for(int i = 0; i < adj[node].size(); i++){
        visited[adj[node][i]] = node + 1;
    }

    for(int i = 0; i < adj[node].size(); i++){
        for(int j = 0; j < adj[adj[node][i]].size(); j++){
            if(visited[adj[adj[node][i]][j]] == node + 1 && adj[adj[node][i]][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;
}