Cod sursa(job #1098209)

Utilizator superman_01Avramescu Cristian superman_01 Data 4 februarie 2014 17:27:15
Problema Triplete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>
#include <bitset>
 
#define NMAX 4100
#define SZ 1500000
#define MMAX 65540
 
using namespace std;
 
ifstream in ( "triplete.in" );
ofstream out ( "triplete.out" );
 
int N , M , Answer ;
bitset < NMAX > Edge[NMAX];
 pair < int , int > A[MMAX];
char input[SZ],*ina=input;
   
inline int atoi()
{
    int nr=0;
    for(;!(*ina>='0' && *ina<='9');++ina);
    for(;*ina>='0' && *ina<='9';++ina)
        nr=nr*10+(*ina-'0');
    return nr;
}
 
 
int main ( void )
{
    int i , j , first_Animal , second_Animal ;
     
    in.read(input , SZ);
    N = atoi(), M = atoi();
    for ( i = 1 ; i <= M ; ++i )
    {
        A[i].first = atoi() , A[i].second = atoi();
        Edge[A[i].first][ A[i].second] = Edge[ A[i].second][A[i].first] = true ;
    }
     
    for ( i = 1 ; i <= M ; ++i )
            {   bitset<NMAX> x = Edge[A[i].first]&Edge[A[i].second] ; Answer += x.count();}
             
    out << Answer/3 << "\n";
    in.close();
    out.close();
    return 0;
}