Cod sursa(job #1156396)

Utilizator otto1Palaga Vicentiu-Octavian otto1 Data 27 martie 2014 17:12:59
Problema Triplete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<cstdio>
#include<bitset>
using namespace std;
const int DIM=524286;
bitset<4096> a[4096];
struct {int x,y;} v[65536];
char ax[DIM+2];
int n,m,nr,pz;
inline void cit(int &x)
{   x=0;
	while(ax[pz]<'0' || ax[pz]>'9')
		if(++pz==DIM)fread(ax, 1, DIM, stdin), pz=0;
	while(ax[pz]>='0' && ax[pz]<='9')
	{	x=x*10+ax[pz]-'0';
		if(++pz==DIM)fread(ax,1, DIM, stdin),pz=0;
	}
}
int main()
{   freopen("triplete.in","r",stdin);
    freopen("triplete.out","w",stdout);
	scanf("%d %d\n",&n,&m);
    for(int i=0;i<m;++i)
    {	cit(v[i].x); cit(v[i].y);
		v[i].x--; v[i].y--;
        a[v[i].x][v[i].y]=a[v[i].y][v[i].x]=1;
    }
    for(int i=0;i<m;++i) nr+=(a[v[i].x]&a[v[i].y]).count();
	printf("%d\n",nr/3);
	return 0;
}