Pagini recente » Cod sursa (job #1489754) | Cod sursa (job #2486263) | Diferente pentru teorema-chineza-a-resturilor intre reviziile 89 si 65 | Profil ImBroOmY | Cod sursa (job #1594814)
#include <fstream>
using namespace std;
ifstream f("triplete.in");
ofstream g("triplete.out");
int N,M,i,j,r;
unsigned long long int a[4100][150],b[4100][150];
int x[67000],y[67000];
int main()
{
f>>N>>M;
while(M--)
{
f>>x[M]>>y[M];if(x[M]>y[M])swap(x[M],y[M]);
a[x[M]][y[M]>>6]|=(1<<(y[M]&63));
b[y[M]][x[M]>>6]|=(1<<(x[M]&63));
}
for(i=0;x[i];++i)
for(j=0;(j<<6)<=N;++j)
r+=__builtin_popcount(a[x[i]][j]&b[y[i]][j]);
g<<r;
return 0;
}