Cod sursa(job #474978)

Utilizator SpiderManSimoiu Robert SpiderMan Data 5 august 2010 16:56:45
Problema Triplete Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
# include <algorithm>
using namespace std ;

# define f first
# define s second

const char FIN[] = "triplete.in", FOU[] = "triplete.out" ;

pair < short, short > X[65540] ;
char V[1 << 12][130];
int N, M, sol ;

int main () {
    freopen ( FIN, "r", stdin ) ;
    freopen ( FOU, "w", stdout ) ;

    scanf ( "%d %d", &N, &M ) ;

    for ( int i = 1, a , b ; i <= M; ++i ) {
        scanf ( "%d %d", &a, &b ) ;
        V[a][b >> 5] |= ( 1 << ( b & 31 ) ) ;
        V[b][a >> 5] |= ( 1 << ( a & 31 ) ) ;
        X[i].f = a, X[i].s = b ;

    }

    for ( int i = 1; i <= M; ++i ) {
        for ( int j = 0; j <= N >> 5; ++j ) {
            for ( int aux = V[ X[ i ].f ][ j ] & V[ X[ i ].s ][ j ] ; aux ; aux -= aux & ( -aux ) ) {
                ++sol;
            }
        }
    }

    printf ( "%d", sol / 3 ) ;

    return 0 ;
}