Cod sursa(job #2015449)

Utilizator RaduMirceaAndreiRadu Mircea Andrei RaduMirceaAndrei Data 26 august 2017 10:08:21
Problema Triplete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
# include <fstream>
# include <bitset>
# define DIM 4110
# define DIM1 66546
using namespace std;
ifstream fin("triplete.in");
ofstream fout("triplete.out");
unsigned int b[DIM][DIM/32],a[DIM/32],st[DIM1],dr[DIM1];
unsigned int n,m,x,y,i,j,sol;
int biti(unsigned int a){
    int nr=0;
    for(;a;a-=(a&-(a)),nr++);
    return nr;
}
int main () {
    fin>>n>>m;
    for(i=1;i<=m;i++){
        fin>>x>>y;
        st[i]=x;
        dr[i]=y;
        if(st[i]>dr[i])
            swap(st[i],dr[i]);
        b[st[i]][dr[i]/32]+=(1<<((dr[i]-1)%32));
    }
    for(i=1;i<=m;i++)
        for(j=0;j<=n/32;j++)
            sol+=biti(((b[st[i]][j])&(b[dr[i]][j])));
    fout<<sol<<"\n";
    return 0;
}