Cod sursa(job #617621)

Utilizator scipianusFMI Ciprian Olariu scipianus Data 15 octombrie 2011 09:37:50
Problema Triplete Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<fstream>
#include<bitset>
using namespace std;
int n,m,A[66000],B[66000],sol;
bitset <4100> G[4100],nr;
int main()
{
	int i,j,x,y,lim;
	char s[100];
	ifstream fin("triplete.in");
	fin.getline(s,100);
	j=0;
	lim=strlen(s);
	while(s[j]!=' ')
	{
		n=n*10+(s[j]-'0');
		j++;
	}
	j++;
	while(j<lim)
	{
		m=m*10+(s[j]-'0');
		j++;
	}
	//fin>>n>>m;
	for(i=1;i<=m;i++)
	{
		x=y=0;
		fin.getline(s,100);
		j=0;
		lim=strlen(s);
		while(s[j]!=' ')
		{
			x=x*10+(s[j]-'0');
			j++;
		}
		j++;
		while(j<lim)
		{
			y=y*10+(s[j]-'0');
			j++;
		}
		//fin>>x>>y;
		if(x<y)
			G[x].set(y);
		else
			G[y].set(x);
		A[i]=x; B[i]=y;
	}
	for(i=1;i<=m;i++)
	{
		nr=(G[A[i]]&G[B[i]]);
		sol+=nr.count();
	}
	ofstream fout("triplete.out");
	fout<<sol<<"\n";
	fout.close();
	return 0;
}