Cod sursa(job #179073)

Utilizator tm_raduToma Radu tm_radu Data 15 aprilie 2008 16:08:22
Problema Triplete Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <stdio.h>
#include <set>
#include <utility>
#define NM 4100
using namespace std;

int n, m;
int i, j, k;
int nrsol = 0;
set<int> l[NM];
set<pair<int, int> > e;
set<int>::iterator it;
set<pair<int, int> >::iterator iv;

int main()
{
    freopen("triplete.in", "r", stdin);
    freopen("triplete.out", "w", stdout);
    scanf("%d %d", &n, &m);
    for ( k = 1; k <= m; k++ )
        scanf("%d %d", &i, &j),
        l[i].insert(j),
        l[j].insert(i),
        e.insert(make_pair(i, j));
    for ( iv = e.begin(); iv != e.end(); iv++ )
    {
        i = (*iv).first;
        j = (*iv).second;
        for ( k = 1; k <= n; k++ )
        {
            int ok = 1;
            it = l[i].find(k);
            if ( it == l[i].end() ) ok = 0;
            it = l[j].find(k);
            if ( it == l[j].end() ) ok = 0;
            if ( ok ) nrsol++;
        }
    }            
    printf("%d\n", nrsol/3);       
        
    
    
    return 0;
}